代码之家  ›  专栏  ›  技术社区  ›  Tim Schmelter

对表的每个记录和concat结果调用tvf

  •  1
  • Tim Schmelter  · 技术社区  · 16 年前

    我想那一定很明显,但我想不出来。

    假设有一张桌子 tblData 用柱 ID 和表值函数( _tvf 这需要一个 身份证件 作为参数。我需要所有身份证的结果 TBLATDATA .

    但是:

    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和Concat结果的正确方法是什么?

    谢谢

    1 回复  |  直到 16 年前
        1
  •  5
  •   marc_s MisterSmith    16 年前

    我认为您可能需要使用交叉应用而不是内部联接:

    SELECT * 
    FROM dbo.tblData data 
    CROSS APPLY dbo._tvf(data.ID) AS tvfData
    

    这将调用每个 data.ID 并将结果联接到基表的列。

    请参阅此处的资源:

    推荐文章