Oracle SQL: LISTAGG를 사용하여 여러 행의 열 값 결합
Oracle은 여러 행의 데이터를 단일 문자열로 결합하는 여러 가지 방법을 제공합니다. LISTAGG
기능은 특히 효과적인 방법입니다.
테이블 A(A, B, C 값을 포함하는 PID
열 포함)와 테이블 B(PID
, SEQ
및 Desc
열 포함)라는 두 개의 테이블이 있다고 가정해 보겠습니다. 목표는 Desc
으로 그룹화되고 PID
으로 정렬된 테이블 B의 SEQ
값을 결과 집합의 단일 Description
열로 연결하는 것입니다.
LISTAGG
을 사용하여 이 작업을 수행하는 방법은 다음과 같습니다.
<code class="language-sql">SELECT pid, LISTAGG(Desc, ' ') WITHIN GROUP (ORDER BY seq) AS description FROM B GROUP BY pid;</code>
이 쿼리는 LISTAGG
을 사용하여 각 고유 Desc
에 대한 PID
값을 집계하고 SEQ
열을 기준으로 정렬하고 공백(' ')을 구분 기호로 사용합니다. 출력에는 PID
열의 해당 연결된 Desc
값과 함께 각 description
이 표시됩니다.
테이블 A에 있는 PID
만 포함하려면 이 쿼리를 테이블 A와 결합하면 됩니다.
<code class="language-sql">SELECT a.pid, LISTAGG(b.Desc, ' ') WITHIN GROUP (ORDER BY b.seq) AS description FROM A a JOIN B b ON a.pid = b.pid GROUP BY a.pid;</code>
중요 고려 사항: LISTAGG
은 일반적으로 VARCHAR2
데이터 유형에서 올바르게 작동합니다.
위 내용은 LISTAGG를 사용하여 Oracle SQL에서 여러 행의 열 값을 어떻게 연결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!