SQL Server에서 STRING_AGG 및 DISTINCT를 사용하여 고유 값 가져오기
SQL Server 2017에 도입된 SQL Server STRING_AGG 함수를 사용하면 다음을 집계할 수 있습니다. 여러 행의 문자열을 쉼표로 구분된 단일 문자열로 변환합니다. 그러나 쉼표로 구분된 필드에서 값을 구분하기 위해 STRING_SPLIT와 함께 사용하면 집계된 문자열에 중복된 값이 발생할 수 있습니다.
집계된 문자열에서 고유한 값을 얻으려면 다음을 사용하여 쿼리를 향상할 수 있습니다. 하위 쿼리의 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
이 개선된 쿼리에서는
이 수정된 쿼리의 출력은 다음과 같습니다. be:
ProjectID NewField ------------------------------- 2 O95833, Q96NY7-2 4 Q96NY7-2
이것은 STRING_AGG를 사용하여 집계된 고유한 값으로 원하는 결과를 제공합니다.
위 내용은 SQL Server의 STRING_AGG를 사용하여 쉼표로 구분된 문자열에서 고유 값을 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!