34,591
社区成员
发帖
与我相关
我的任务
分享
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)
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
--已经很简单了,没法再优化
--唯一能优化的就是函数内部的查询了,楼主把函数内部查询贴出来吧
select * from employee e cross apply dbo.Fa(e.departmentID)