2017-09-25 5 views
0

の仕組み:TSQL - それは私がうまく機能し、次のコード持って

STUFF( ( 
         select 
          char(13)+'Item '+i.item+' : '--+char(13) +i.item_descr 
         from @itemlines i 
         where i.customer=main.customer 
         FOR XML PATH(''), TYPE 
        ).value('.','varchar(max)') 
       ,1,1, '') 

.VALUE()の事は何を?何か...選択メソッドのようなもの?それは何をするためのものか?参照リンクも高く評価されます!

+0

[この回答](https://stackoverflow.com/a/14374392/569436)をご覧ください。 –

答えて

1

FOR XMLはXMLデータ型を返します。 .value(...,...)はXML値を取り出し、定義したデータ型に変換します。 (「」)あなたの場合には、ルート・ノード内のすべてvarchar型に変換さ(最大)

いくつかのブログ/リンクはAaron Bertrand's postまたはAdam Machanic'sを見ても、あなたが使用STRING_AGGためSQL2017

1

の新機能を見るためにFOR XML PATHを使用してテーブルをXMLに変換します。 XMLデータはSQL ServerのXML data typeで表され、このデータ型で異なるmethodsの一覧を処理することは可能です。これらのメソッドの1つはvalue methodで、XQueryとデータ型の2つの引数を持ちます。この方法では、XMLのデータを他の形式(あなたの場合はvarchar)に変換することができます。

関連する問題