3

我正在尝试查询 XML 文件,并加入现有的表列。XML 部分可以单独工作,但在我尝试加入时会中断。我知道某处的语法是错误的。谁能告诉我如何让 XML 数据的 ID 列链接到 ID 列MyTable

SELECT
    CAST(u.n.value('@ID', 'int') AS int),
    CAST(u.n.value('@userId', 'int') AS int),
    CAST(u.n.value('@roleId', 'int') AS int),
    ah.DateCol
FROM
    @xml.nodes('/appliedprofiles/ah') AS u (n) CROSS APPLY
    [MyTable] ah ON CAST(u.n.value('@ID', 'int') AS int) = ah.ID
4

1 回答 1

3

你的语法是错误的。APPLY运算符不支持ON子句。您需要使用正确的连接子句来做到这一点。

这应该有效:

SELECT
    CAST(u.n.value('@ID', 'int') AS int),
    CAST(u.n.value('@userId', 'int') AS int),
    CAST(u.n.value('@roleId', 'int') AS int),
    ah.DateCol
FROM
    @xml.nodes('/appliedprofiles/ah') AS u (n) INNER JOIN
    [MyTable] ah ON CAST(u.n.value('@ID', 'int') AS int) = ah.ID
于 2013-11-11T11:41:42.740 回答