0

私のストアドプロシージャには、次のようなステートメントがあります

select @cols = STUFF((SELECT distinct ',' + QUOTENAME(Vtype) from VType_tbl
      FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)')  ,1,1,'')

これらのステートメントで正確に何が起こるかわかりませんか?Stuff andQUOTENAME; forを使用する理由XML PATH

4

2 に答える 2

0

stuff コマンドは、最初の文字を削除して '' に置き換えます。

スタッフ文字列関数の調査 ( http://craftydba.com/?p=5397 )。

-- This snippet from my blog results in pay attention!
SELECT 
    STUFF('Pay no attention to the man behind the curtain!', 
          4, 3, '') as oz_quote;
于 2013-09-18T19:39:06.870 に答える
0

STUFF 関数は、文字列を別の文字列に挿入します。最初の文字列の開始位置から指定された長さの文字を削除し、最初の文字列の開始位置に 2 番目の文字列を挿入します。

構文

STUFF ( character_expression , start , length , replaceWith_expression )

SELECT STUFF('abcdef', 2, 3, 'ijklmn');
GO

結果

アイクルムネフ

参照

于 2013-09-18T19:41:04.770 に答える