求Sql语句2

asheo 2012-07-23 04:08:22
有个函数Fa,当调用Fa(111)返回

111,中国,河北,沧州,任丘

当调用Fa(222)返回

222,中国,北京,昌平,天通苑

员工表有数据

1,张三,"Num001",111
2,李四,"Num002",222

现在想要结果

1,张三,"Num001",中国,河北,沧州,任丘
2,李四,"Num002",中国,北京,昌平,天通苑

针对所有员工数据(至少2万条),Fa函数每次只接收一个参数

请大家帮忙
...全文
142 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
百年树人 2012-07-24
  • 打赏
  • 举报
回复
try
declare @sql varchar(8000)
select @sql=isnull(@sql+' union all ','')
+' select * from dbo.Fa('+ltrim(departmentID)+')'
from
(select distinct departmentID from employee) t

set @sql='select * from employee a left join ('+@sql+') b on a.departmentID=b.departmentID'

exec (@sql)
luckings 2012-07-23
  • 打赏
  • 举报
回复

select a.employeeID,a.employeeCode,a.employeeName, c.* from employee a inner join (select * from
(table)Fa(select departmentID from
employee) b) c on c.departmentID =a.departmentID
asheo 2012-07-23
  • 打赏
  • 举报
回复
决定使用其他数据了,这些数据在另一个应用表里面有~虽然是每人每月一条,但是他是不全的,有些人不存在这个表里面~



天-笑 2012-07-23
  • 打赏
  • 举报
回复

--已经很简单了,没法再优化
--唯一能优化的就是函数内部的查询了,楼主把函数内部查询贴出来吧
select * from employee e cross apply dbo.Fa(e.departmentID)


asheo 2012-07-23
  • 打赏
  • 举报
回复
第一个帖子在
http://topic.csdn.net/u/20120723/14/eb623d4a-1f46-4f78-b781-1c1bdd0ded46.html?seed=766526581&r=79202942#r_79202942

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧