使用select语句传递表值函数中的参数
我创build了一个表返回值函数返回给我一个表。 以下是我的function的调用
SELECT * FROM dbo.[StateFixedTaxesCalculation](3020,16,1,1006)
它的工作对我来说OK,现在我想在一个select语句中使用这个函数调用,所以我可以传递16
这基本上是employeeId
dynamic。
所以我决定使用内部连接与该函数返回的表。 喜欢这个
SELECT * FROM Employee as E INNER JOIN dbo.[StateFixedTaxesCalculation](3020,16,1,1006) as TC ON TC.EmployeeId=E.EmployeeId
但现在我怎么能通过16
作为所有employeeId
一个接一个的dynamic值。
使用outer/cross apply
:
select * from Employee as E cross apply dbo.[StateFixedTaxesCalculation](3020, E.EmployeeId, 1, 1006) as TC
如果您仍然需要通过TC.EmployeeId = E.EmployeeId
进行筛选, TC.EmployeeId = E.EmployeeId
可以使用子查询来执行此操作:
select * from Employee as E cross apply ( select TT.* from dbo.[StateFixedTaxesCalculation](3020, E.EmployeeId, 1, 1006) as TT where TT.EmployeeId = E.EmployeeId ) as TC