使用select语句传递表值函数中的参数

我创build了一个表返回值函数返回给我一个表。 以下是我的function的调用

SELECT * FROM dbo.[StateFixedTaxesCalculation](3020,16,1,1006) 

它的工作对我来说OK,现在我想在一个select语句中使用这个函数调用,所以我可以传递16这基本上是employeeIddynamic。

所以我决定使用内部连接与该函数返回的表。 喜欢这个

 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