ホームページ >データベース >mysql チュートリアル >SQL Server で STRING_AGG を使用して一意のカンマ区切り値を取得する方法

SQL Server で STRING_AGG を使用して一意のカンマ区切り値を取得する方法

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-03 10:22:39891ブラウズ

How to Get Unique Comma-Separated Values Using STRING_AGG in SQL Server?

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

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