ホームページ >データベース >mysql チュートリアル >SQL ServerでSQLクエリ結果を単一の文字列に連結するにはどうすればよいですか?
SQL クエリ結果を単一の文字列に連結する
SQL Server では、複数のクエリ結果を 1 つの文字列に結合するタスクを実行できます。さまざまなテクニックを使用します。
FOR XML PATH およびSTUFF
SQL Server 2005 以降の場合、FOR XML PATH と STUFF の組み合わせは簡単なアプローチを提供します。
DECLARE @CodeNameString varchar(100) SELECT @CodeNameString = STUFF( (SELECT ',' + CodeName FROM dbo.AccountCodes ORDER BY Sort FOR XML PATH('')), 1, 1, '')
このメソッドは、クエリ結果を単一の XML 文字列に連結し、次に、STUFF を使用して先頭の「,」文字を削除します。
XML ベース連結
もう 1 つのオプションは、XML 連結機能を活用することです。
DECLARE @CodeNameString varchar(100) SET @CodeNameString = (SELECT CodeName FROM dbo.AccountCodes FOR XML PATH(''))
カーソルベースのアプローチ
XML 連結が使用される場合実現不可能ですが、カーソルベースのアプローチは可能です採用:
DECLARE @CodeNameString varchar(100) DECLARE @CodeName varchar(50) DECLARE cursor CURSOR FOR SELECT CodeName FROM dbo.AccountCodes ORDER BY Sort OPEN CURSOR FETCH NEXT FROM CURSOR INTO @CodeName WHILE @@FETCH_STATUS = 0 BEGIN SET @CodeNameString = @CodeNameString + @CodeName + ',' FETCH NEXT FROM CURSOR INTO @CodeName END CLOSE CURSOR DEALLOCATE CURSOR
このメソッドはクエリ結果を反復処理し、結果を @CodeNameString 変数に追加します。
推奨されるアプローチ
推奨されるアプローチこのアプローチは、SQL Server のバージョンと特定のデータ特性によって異なります。データに「<」、「>」などの特殊文字が含まれる場合または '&' を使用する場合は、FOR XML PATH および STUFF 手法の使用を検討してください。一方、大規模なデータセットまたはパフォーマンス重視のシナリオの場合は、カーソルベースのアプローチの方が適切な場合があります。
以上がSQL ServerでSQLクエリ結果を単一の文字列に連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。