首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求Sql话语2

2012-07-31 
求Sql语句2有个函数Fa,当调用Fa(111)返回111,中国,河北,沧州,任丘当调用Fa(222)返回222,中国,北京,昌平,天

求Sql语句2
有个函数Fa,当调用Fa(111)返回

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

当调用Fa(222)返回

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

员工表有数据

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

现在想要结果

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

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

请大家帮忙


[解决办法]

SQL code
--已经很简单了,没法再优化--唯一能优化的就是函数内部的查询了,楼主把函数内部查询贴出来吧select * from employee e cross apply dbo.Fa(e.departmentID)
[解决办法]
try
SQL code
declare @sql varchar(8000)select @sql=isnull(@sql+' union all ','')  +' select * from dbo.Fa('+ltrim(departmentID)+')'from (select distinct departmentID from employee) tset @sql='select * from employee a left join ('+@sql+') b on a.departmentID=b.departmentID'exec (@sql) 

热点排行