ホームページ >データベース >mysql チュートリアル >T-SQL を使用して複数の行をカンマ区切りの値を持つ 1 つの列に結合するにはどうすればよいですか?

T-SQL を使用して複数の行をカンマ区切りの値を持つ 1 つの列に結合するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-12 09:53:43837ブラウズ

How Can I Combine Multiple Rows into a Single Column with Comma-Separated Values Using T-SQL?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。