函数的sql连接

函数的sql连接,sql,Sql,我有一个函数,它接受两个参数并返回一个表。 是否可以在选择中使用此函数并显示它返回的3列? 这是我的疑问: select a.PersonId, b.Passportnumber, dbo.fn_Passport(a.PersonId) from Person a 如果你说的是fn_Passport,那就谢谢你了。看起来,它并没有返回一张桌子 如果是-您可以仅选择所需的列,或通过SQL Server 2005+的交叉应用进行连接,您可以使用应用运算符 select a.PersonId, b.

我有一个函数,它接受两个参数并返回一个表。 是否可以在选择中使用此函数并显示它返回的3列? 这是我的疑问:

select a.PersonId, b.Passportnumber, dbo.fn_Passport(a.PersonId)
from Person a

如果你说的是fn_Passport,那就谢谢你了。看起来,它并没有返回一张桌子


如果是-您可以仅选择所需的列,或通过SQL Server 2005+的交叉应用进行连接,您可以使用应用运算符

select a.PersonId, b.Passportnumber, p.col1, p.col2, p.col3
from Person a
OUTER APPLY dbo.fn_Passport(a.PersonId) p
为了便于说明,我假设列名为col1、col2、col3

当函数必须返回1行或多行以保留人员记录时,可以使用交叉应用。使用OUTERAPPLY保存人员记录,即使该函数不产生任何行。基本上

CROSS APPLY similar to INNER JOIN
OUTER APPLY similar to OUTER JOIN

我想这是您过去问题中的sql server?