我认为这一定是显而易见的,但我无法弄明白。
假设有一个表tblData
,其中包含一列ID
和一个以_tvf
为参数的表值函数(ID
)。我需要tblData
中所有ID的结果。
可是:
SELECT * FROM tblData data
INNER JOIN dbo._tvf(data.ID) AS tvfData
ON data.ID = tvfData.ID
给我一个错误:The multi-part identifier "data.ID" could not be bound
将所有ID传递给此TVF并将结果连接起来的正确方法是什么?
由于
答案 0 :(得分:5)
我认为你可能需要在这里使用CROSS APPLY而不是内连接:
SELECT *
FROM dbo.tblData data
CROSS APPLY dbo._tvf(data.ID) AS tvfData
这将为基表的每个data.ID
调用TVF函数,并将结果连接到基表的列。
请参阅此处的资源: