2
複数のxmlファイルを解析しようとしています。 しかしsql xmlを正しく解析する際にaplly "cross apply"する方法
まずバリアントは正常に動作します適用
DECLARE @input XML =
'<a>
<b>
<g>one</g>
<n>
<c>somedata1 1</c>
</n>
<n>
<c>2somedata 2</c>
</n>
</b>
</a>'
SELECT
g = XC.value('(g)[1]', 'varchar(100)'),
i = xc1.n1.value ('(c)[1]', 'varchar(100)')
FROM @input.nodes ('a/b') as XT (XC)
cross apply @input.nodes ('//n') as xc1(n1)
第二の変形は、(空のフィールドを返す)失敗したクロスを適用する際にスタック - 私は、これは<с>ノード
DECLARE @input XML =
'<a>
<b>
<g>one</g>
</b>
</a>'
SELECT
g = XC.value('(g)[1]', 'varchar(100)'),
i = xc1.n1.value ('(c)[1]', 'varchar(100)')
FROM @input.nodes ('a/b') as XT (XC)
cross apply @input.nodes ('//n') as xc1(n1)
の不在becouse Iである知っています複数のファイルを扱い、それらのノードの中にはいくつかのものがありますが、私の決定はどういうものでしょうか?
ありがとうございます!よく働く –