我有一個函數,它需要2個參數並返回一個表。 是否可以在select中使用此函數並顯示它返回的3列? 這是我的查詢:函數sql加入
select a.PersonId, b.Passportnumber, dbo.fn_Passport(a.PersonId)
from Person a
感謝
我有一個函數,它需要2個參數並返回一個表。 是否可以在select中使用此函數並顯示它返回的3列? 這是我的查詢:函數sql加入
select a.PersonId, b.Passportnumber, dbo.fn_Passport(a.PersonId)
from Person a
感謝
對於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。
您使用CROSS適用於函數必須返回1行或多行以保留Person記錄時。使用OUTER應用保留人員記錄,即使該功能不生成任何行。基本上
CROSS APPLY similar to INNER JOIN
OUTER APPLY similar to OUTER JOIN
完美。謝謝。 – 2011-03-17 07:44:45
如果你談論fn_Passport-它似乎沒有,它返回一個表。
如果確實如此 - 你可以只選擇需要的列,或者通過交叉連接APPLY
我把它這是你過去的問題的SQL服務器? – RichardTheKiwi 2011-03-17 07:21:37