SQL Server의 하위 쿼리에서 행을 효율적으로 연결하려면 어떻게 해야 합니까?
SQL Server 행 연결: 사용자 정의 기능과 최신 접근 방식
이 문서에서는 SQL Server 내 하위 쿼리의 행을 효율적으로 연결하여 단일 구분 문자열을 생성하는 두 가지 방법을 보여줍니다. 첫 번째는 다양한 SQL Server 버전에 걸쳐 호환성을 제공하는 사용자 지정 함수를 사용합니다. 두 번째는 SQL Server 2017 이상에서 사용할 수 있는 STRING_AGG
기능을 활용하여 향상된 성능을 제공합니다.
방법 1: JoinRows
사용자 정의 함수
더 넓은 SQL Server 버전 호환성을 위해 사용자 정의 기능이 깔끔한 솔루션을 제공합니다. 아래 JoinRows
함수는 구분 문자와 테이블을 입력으로 사용하여 연결된 문자열을 반환합니다.
CREATE FUNCTION JoinRows ( @Separator CHAR(1), @InputTable TABLE (ID INT, Value VARCHAR(MAX)) ) RETURNS VARCHAR(MAX) BEGIN RETURN ( SELECT COALESCE(@Separator + I.Value, I.Value) FROM @InputTable AS I FOR XML PATH('') ); END;
이 기능은 다음과 같이 쿼리에 통합될 수 있습니다.
SELECT VehicleID, Name, JoinRows(', ', (SELECT City FROM Location WHERE VehicleID = Vehicles.VehicleID)) AS Locations FROM Vehicles;
방법 2: STRING_AGG
(SQL Server 2017 이상)
SQL Server 2017 및 후속 버전의 경우 내장된 STRING_AGG
기능이 더욱 간편하고 빠른 접근 방식을 제공합니다.
SELECT VehicleID, Name, STRING_AGG(City, ', ') WITHIN GROUP (ORDER BY City) AS Locations FROM Vehicles INNER JOIN Location ON Vehicles.VehicleID = Location.VehicleID GROUP BY VehicleID, Name;
이 방법은 Vehicles
및 Location
테이블을 직접 조인하고 STRING_AGG
을 사용하여 City
으로 분할된 VehicleID
값을 집계하여 최신 SQL Server 인스턴스에 대한 보다 효율적인 솔루션을 제공합니다. 연결된 도시의 예측 가능한 순서를 위해 WITHIN GROUP (ORDER BY City)
추가에 유의하세요. 이는 선택 사항이지만 일관된 결과를 얻으려면 권장됩니다. 올바른 집계를 보장하려면 GROUP BY
절도 필요합니다.
SQL Server 버전 및 성능 요구 사항에 가장 적합한 방법을 선택하세요. 이전 버전의 경우 사용자 정의 기능이 필요합니다. 최신 버전의 경우 STRING_AGG
가 상당한 성능 이점을 제공합니다.
위 내용은 SQL Server의 하위 쿼리에서 행을 효율적으로 연결하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까?

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다.

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음)

인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)?
