ホームページ >データベース >mysql チュートリアル >SQL Server で STRING_AGG を使用して一意のカンマ区切り値を取得する方法
SQL Server で STRING_AGG を使用して一意の値を取得する
問題:
STRING_AGG 関数の使用を使用すると、列からカンマ区切りの値を取得できます。ただし、結果には重複が含まれる場合があります。出力の一意の値のみを取得するにはどうすればよいですか?
クエリ:
次のクエリは STRING_AGG を使用して一意の値を取得します:
SELECT ProjectID, STRING_AGG(DISTINCT newID.value, ',') WITHIN GROUP (ORDER BY newID.value) AS NewField FROM [dbo].[Data] WITH (NOLOCK) CROSS APPLY STRING_SPLIT([bID], ';') AS newID WHERE newID.value IN ('O95833', 'Q96NY7-2') GROUP BY ProjectID ORDER BY ProjectID
説明:
の DISTINCT キーワードサブクエリは結果セットから重複する値を削除します。 CROSS APPLY 演算子は、STRING_SPLIT 関数を使用して bID 列を個々の値に分割します。次に、STRING_AGG 関数はこれらの値をコンマ区切りの文字列に連結し、ORDER BY 句によって連結前に値が確実に並べ替えられます。
出力:
最後の出力には、各プロジェクト ID の一意の値のみが表示されます:
ProjectID NewField ------------------------------- 2 O95833, Q96NY7-2 4 Q96NY7-2
以上がSQL Server で STRING_AGG を使用して一意のカンマ区切り値を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。