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 に答える