求Sql话语2
求Sql语句2
有个函数Fa,当调用Fa(111)返回
111,中国,河北,沧州,任丘
当调用Fa(222)返回
222,中国,北京,昌平,天通苑
员工表有数据
1,张三,"Num001",111
2,李四,"Num002",222
现在想要结果
1,张三,"Num001",中国,河北,沧州,任丘
2,李四,"Num002",中国,北京,昌平,天通苑
针对所有员工数据(至少2万条),Fa函数每次只接收一个参数
请大家帮忙
------解决方案--------------------
有个函数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) t set @sql='select * from employee a left join ('+@sql+') b on a.departmentID=b.departmentID' exec (@sql)