ホームページ >データベース >mysql チュートリアル >SQL クエリの結果を単一の文字列に連結するにはどうすればよいですか?
問題:
SQL では、関数に次のクエリを取得するクエリが含まれています。 AccountCodes テーブルの CodeName 値を Sort で並べたリスト。目標は、これらの値を 1 つの文字列に連結し、その結果を CodeNameString 変数に保存することです。
解決策:
FOR XML PATH と STUFF を使用する ( SQL Server 2005 または後で):
DECLARE @CodeNameString varchar(100) SELECT @CodeNameString = STUFF( (SELECT ',' + CodeName FROM dbo.AccountCodes ORDER BY Sort FOR XML PATH('')), 1, 1, '')
このメソッドは、FOR XML PATH 句を使用して CodeName 値を XML 文字列に連結します。結果の XML は、STUFF 関数を使用して最初の文字 (カンマ) が削除された文字列に変換されます。
注: CodeName 値に次の値が含まれている場合、この方法は機能しない可能性があります。 <、>、& などの特定の文字。このような場合、以下に提案するような代替ソリューションが推奨されます。
代替ソリューション (DISTINCT および FOR XML RAW を使用):
DECLARE @CodeNameString varchar(100) SELECT @CodeNameString = DISTINCT(CodeName) WHERE EXISTS (SELECT 1 FROM dbo.AccountCodes WHERE CodeName = @CodeNameString) FOR XML RAW, ',')
Thisこのメソッドは、FOR XML RAW 句を使用して、重複を除いた連結された値を含む XML 文字列を作成します。次に、文字列が CodeNameString 変数に割り当てられます。
以上がSQL クエリの結果を単一の文字列に連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。