1

SELECT単一のテーブルからいくつかの列を選択する簡単なステートメントがあります。

SELECT id, name, phone, address 
FROM tmp_user

このクエリを変更して、とのみが選択され、残りの詳細がxmlノードに含まれるようにすることはできidますnameか?

このselectの出力は次のようになります。

id  name        extra data
1   Shreedhar   <data><phone>...</phone><address>...</address></data>
2   John Doe    <data><phone>...</phone><address>...</address></data>
3   Jane Doe    <data><phone>...</phone><address>...</address></data>

返されるテーブルの最後の列は、必要なデータを含むXMLタイプである必要があります。FORXMLを使用して結果セット全体をXMLに変換する方法を知っています。ただし、変換する列の一部のみを探しています。出来ますか?

4

1 に答える 1

1

もちろん!問題ありません-次のようなものを試してください:

SELECT 
    id, name,
    (SELECT phone, address
     FROM dbo.tmp_user u2
     WHERE u2.id = u1.id
     FOR XML PATH('data')) AS 'ExtraData'
FROM    
   dbo.tmp_user u1

これにより、探しているものとまったく同じ出力が得られます。

ここに画像の説明を入力してください

于 2012-04-28T11:29:12.937 に答える