我有一个函数,它接受2个参数并返回一个表.是否可以在选择中使用此功能并显示它返回的3列?这是我的查询:
select a.PersonId, b.Passportnumber, dbo.fn_Passport(a.PersonId)
from Person a
Run Code Online (Sandbox Code Playgroud)
谢谢
Ric*_*iwi 11
对于SQL Server 2005+,您可以使用APPLY运算符
select a.PersonId, b.Passportnumber, p.col1, p.col2, p.col3
from Person a
OUTER APPLY dbo.fn_Passport(a.PersonId) p
Run Code Online (Sandbox Code Playgroud)
我假设列名是col1,col2,col3用于说明.
当函数必须返回1行或更多行以保留Person记录时,可以使用CROSS APPLY.即使函数没有行,也使用OUTER APPLY来保留Person记录.基本上
CROSS APPLY similar to INNER JOIN
OUTER APPLY similar to OUTER JOIN
Run Code Online (Sandbox Code Playgroud)