ホームページ >データベース >mysql チュートリアル >T-SQL を使用して SQL Server の単一列から複数の値を取得する方法
単一列から複数の値を取得するための T-SQL テクニック
SQL Server データベース管理では、単一のレコードに関連付けられた複数の値を効率的に取得することが一般的なタスクです。これには多くの場合、1 対多の関係を持つテーブルが関係し、単一の識別子が複数の関連する値にリンクされます。 この記事では、T-SQL 関数と文字列操作を使用した堅牢な方法を示します。
各ユーザーが複数のエイリアスを持つことができる UserAliases
テーブルを考えてみましょう。 課題は、特定のユーザーのすべてのエイリアスを単一の列に取得することにあります。 これは、COALESCE
関数とユーザー定義関数を組み合わせることで、エレガントに解決できます。
次の T-SQL コードは、このソリューションを示しています。
<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; GO SELECT UserID, dbo.GetAliasesByID(UserID) AS Aliases FROM UserAliases GROUP BY UserID; GO</code>
GetAliasesById
関数は、入力として userID
を受け取り、関連付けられたすべてのエイリアスのカンマ区切り文字列を返します。 COALESCE
は潜在的な null 値を処理し、適切にフォーマットされた出力を保証します。メインの SELECT
ステートメントは、各ユーザーに対してこの関数を呼び出し、その結果、各ユーザー ID のすべてのエイリアスを含む 1 つの列が作成されます。
このアプローチは、単一のエンティティにリンクされた複数の値を管理および表示するための簡潔かつ効率的な方法を提供し、T-SQL アプリケーション内のデータ処理を簡素化します。
以上がT-SQL を使用して SQL Server の単一列から複数の値を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。