ホームページ >データベース >mysql チュートリアル >T-SQL を使用して複数の行をカンマ区切りの値を持つ 1 つの列に結合するにはどうすればよいですか?
T-SQL の単一列で複数の値を返す
異なる行から複数の値を取得し、それらを 1 つの列に結合することは、SQL Server 環境では一般的なタスクです。これは、特定のユーザーに関連付けられたすべてのエイリアスを取得するなどのシナリオで特に役立ちます。
これを効率的に実現するには、COALESCE 関数を利用するカスタム関数の使用を検討してください。このアプローチにより、取得した値を単一の文字列に段階的に連結し、最終的に目的の出力を提供することができます。
GetAliasesById という関数の例を次に示します。
<code class="language-sql">CREATE FUNCTION [dbo].[GetAliasesById] ( @userID int ) RETURNS varchar(max) AS BEGIN declare @output varchar(max) select @output = COALESCE(@output + ', ', '') + alias from UserAliases where userid = @userID return @output END</code>
この関数を定義した後、それをクエリに統合して、目的の出力を取得できます。
<code class="language-sql">SELECT UserID, dbo.GetAliasesByID(UserID) FROM UserAliases GROUP BY UserID</code>
このクエリは、UserID と Aliases の 2 つの列を含むテーブルを返します。 Aliases 列には、各ユーザーに関連付けられたすべてのエイリアスのカンマ区切りのリストが含まれ、単一の列で複数の値を返すという指定された要件を満たします。
以上がT-SQL を使用して複数の行をカンマ区切りの値を持つ 1 つの列に結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。