>데이터 베이스 >MySQL 튜토리얼 >LISTAGG를 사용하여 Oracle SQL에서 여러 행의 열 값을 어떻게 연결할 수 있습니까?

LISTAGG를 사용하여 Oracle SQL에서 여러 행의 열 값을 어떻게 연결할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-23 15:11:12150검색

How Can I Concatenate Column Values from Multiple Rows in Oracle SQL Using LISTAGG?

Oracle SQL: LISTAGG를 사용하여 여러 행의 열 값 결합

Oracle은 여러 행의 데이터를 단일 문자열로 결합하는 여러 가지 방법을 제공합니다. LISTAGG 기능은 특히 효과적인 방법입니다.

테이블 A(A, B, C 값을 포함하는 PID 열 포함)와 테이블 B(PID, SEQDesc 열 포함)라는 두 개의 테이블이 있다고 가정해 보겠습니다. 목표는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.