DECLARE @xml VARCHAR(MAX)= ' ブラッシング:1 収縮:2 乾式研磨:3 湿式摩擦:4 洗濯堅牢度:5 感触:6 防水性:7 PH:8 日光:9 ' SET @xml = ' < root> ' + CHAR(10)+ ' <r> <v> ' + REPLACE(REPLACE(@xml、CHAR(10)、' </ v1> </ r> ' + CHAR(13)+' <R> <V> ')、' :'、' </ V> <V1> ')+ ' </ V1> </ R> ' + CHAR(10)+ ' </ルート> ' BEGIN TRYの DECLAREを @ xml2 XML = @xml SELECT * FROM ( SELECT tvquery(' 。'). value(' / r [1] / v [1] '、' varchar(50)')としてGY、 (tvquery' 。'). value(' / r [1] / v1 [1] '、' varchar(50)')as gyyq FROM @ xml2 .nodes(' / root / r ' )t(v))a PIVOT(MAX(gyyq)FOR GyをIN([ サンディング]、[ 収縮率]、[ 乾式粉砕]、[ 湿式摩擦]、[ 洗濯堅牢度]、[ タッチ]、[ 防水]、[ PH ]、[ 日光]))AS pvt END TRY BEGIN CATCH IF @@ ERROR > 0 SELECT NULL AS [ Brushed ]、NULL AS [ 収縮率]、NULL AS [ 乾式粉砕]、NULL AS [ 湿式摩擦]、NULL AS [ 洗濯堅牢度]、NULL AS [ 感触]、NULL AS [ 水]、NULL AS [ PH ]、NULL AS [ 太陽] 、ERROR_MESSAGE() END CATCH
-ここに示されているが、複数の列である場合
MSSQLは、データセットを生成するための区切り文字を指定します
おすすめ
転載: www.cnblogs.com/BTag/p/12699696.html
ランキング