ホームページ >データベース >mysql チュートリアル >SQL Server で STRING_AGG を使用するときに重複を排除するにはどうすればよいですか?
STRING_AGG 結果の重複の削除
このタスクは、SQL Server の STRING_AGG 関数を使用して一意の値を取得し、重複した要素が確実に削除されるようにすることです。 .
提供されたサンプル クエリでは、STRING_AGG 関数は次の目的で使用されます。文字列を単一のカンマ区切りフィールドに連結し、ProjectID ごとにグループ化します。ただし、結果の NewField には重複した値が含まれています。
一意の NewField を取得するには、サブクエリ内で DISTINCT キーワードを使用できます。更新されたクエリは次のとおりです。
SELECT ProjectID , STRING_AGG(value, ',') WITHIN GROUP (ORDER BY value) AS NewField FROM ( SELECT DISTINCT ProjectID , newId.value FROM [dbo].[Data] WITH (NOLOCK) CROSS APPLY STRING_SPLIT([bID],';') AS newId WHERE newId.value IN ( 'O95833' , 'Q96NY7-2' ) ) x GROUP BY ProjectID ORDER BY ProjectID
サブクエリは最初に、元のテーブルから ProjectID と newId.value の個別の値を選択します。これらの個別の値は、外部クエリで STRING_AGG 操作を実行するために使用され、最終的な NewField 結果に重複が存在しないことが保証されます。
この変更されたクエリを実行すると、一意の値のみを含む目的の出力が得られます。
ProjectID | NewField ----------+---------- 2 | O95833, Q96NY7-2 4 | Q96NY7-2
以上がSQL Server で STRING_AGG を使用するときに重複を排除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。