我正在尝试查询XML文件,并且还要加入现有的表列。 XML部分可以单独工作,但在尝试连接时会中断。我知道语法在某处错了。任何人都可以建议如何获取XML数据的ID列以链接到MyTable
中的ID列?
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
答案 0 :(得分:3)
你的语法错了。 APPLY运算符不支持ON
子句。
您需要使用正确的join子句来执行此操作。
这应该有效:
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