どのように私は、SQL Serverの2K8 R2は、互換モードに頼ることなく、このXMLを返すように得ることができます
-
27-09-2019 - |
質問
私たちは2K8 R2およびFOR XML AUTOクエリの出力に私たちのSQLサーバーをアップグレードする過程で変更されたされます。
の3つのテーブルからクエリの出力列
各列が同じバーである結果セット戻り三列最後の2列第3テーブルから。以下のように表示するために使用した結果、
<element1 myval="Test">
<element2 myotherval="atest">
<element3 a="a"/>
<element3 a="b"/>
<element3 a="c" />
</element2>
</element1>
それはないショー
<element1 myval="Test">
<element2 myotherval="atest">
<element3 a="a"/>
</element2>
</element1>
<element1 myval="Test">
<element2 myotherval="atest">
<element3 a="B"/>
</element2>
</element1>
<element1 myval="Test">
<element2 myotherval="atest">
<element3 a="C"/>
</element2>
</element1>
私はXMLパスの使用しようとしているが、それはまだかなりのデータをグループ化するよりも、要素1の3つの別々のインスタンスを返します。
解決
あなたはXMLパスの使用してサブツリーをしたい場合は、
は、各サブツリーのサブクエリを記述する必要があります。だからあなたの場合には、あなたは要素1の親select文を持っている、と列の一つが(順番にもサブクエリとすることができる)要素2であることが必要であるものは何でもなるサブクエリです。あなたはサブクエリを使用していて、それらから返されたXMLを使用する場合は、使用
のXML PATH( 'elementN')、FOR TYPE
またはそれはXMLコードをエスケープます。
所属していません StackOverflow