SQL Server에서 STRING_AGG를 사용하는 고유 값
SQL Server 2017의 STRING_AGG 함수를 사용하면 값을 단일 문자열로 연결할 수 있습니다. 그러나 여러 항목이 포함된 필드를 연결하면 중복 값이 반환될 수 있습니다.
다음 쿼리를 고려하세요.
SELECT ProjectID, STRING_AGG( 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
이 쿼리는 연결된 값을 반환하지만 중복 항목은 포함됩니다.
ProjectID | NewField |
---|---|
2 | O95833,O95833,O95833,Q96NY7-2,Q96NY7-2,Q96NY7-2 |
4 | Q96NY7-2,Q96NY7-2 |
고유한 값만 검색하려면 하위 쿼리:
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
이 하위 쿼리는 STRING_AGG 함수를 적용하기 전에 중복 항목을 제거합니다. 최종 결과는 다음과 같습니다.
ProjectID | NewField |
---|---|
2 | O95833, Q96NY7-2 |
4 | Q96NY7-2 |
위 내용은 SQL Server에서 STRING_AGG를 사용하여 고유한 값을 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!