>데이터 베이스 >MySQL 튜토리얼 >쉼표 구분 기호를 사용하여 DB2 그룹의 열 값을 어떻게 연결할 수 있습니까?

쉼표 구분 기호를 사용하여 DB2 그룹의 열 값을 어떻게 연결할 수 있습니까?

DDD
DDD원래의
2025-01-09 14:51:42743검색

How Can I Concatenate Column Values in DB2 Groups with Comma Separators?

DB2: 쉼표로 구분된 그룹 값 생성 ​​

이 기사에서는 그룹 내의 열 값을 연결하고 쉼표로 구분할 수 있는 DB2 SQL의 기본 제공 함수가 있는지 살펴봅니다. 이 기능의 필요성은 여러 행이 동일한 그룹 식별자(예: 예의 ID)를 공유하지만 다른 열은 다른 값(예: 역할)을 갖는 상황에서 발생합니다. 원하는 출력은 각 그룹과 연관된 값을 쉼표로 구분된 목록으로 연결하는 것입니다.

해결책: LISTAGG 기능을 사용하세요

DB2 LUW 9.7에는 사용자 정의 구분 기호로 구분된 각 그룹의 지정된 열 값을 연결할 수 있는 LISTAGG 함수가 도입되었습니다. 이 기능을 사용하면 원하는 쉼표로 구분된 출력을 얻을 수 있습니다.

예:

id와 카테고리 열이 있는 다음 myTable을 고려해 보세요.

<code class="language-sql">create table myTable (id int, category int);

insert into myTable values (1, 1);
insert into myTable values (2, 2);
insert into myTable values (5, 1);
insert into myTable values (3, 1);
insert into myTable values (4, 2);</code>

각 카테고리 그룹에서 쉼표로 구분된 ID 값 목록을 생성하려면 다음 쿼리를 사용할 수 있습니다.

<code class="language-sql">select category, LISTAGG(id, ', ') as ids from myTable group by category;</code>

이 쿼리는 다음과 같은 출력을 생성합니다.

<code>CATEGORY  IDS
--------- -----
1         1, 5, 3
2         2, 4</code>

추가 기능:

LISTAGG 기능을 사용하면 각 그룹 내에서 연결된 값의 순서를 추가로 제어할 수 있습니다. LISTAGG 함수에 ORDER BY 절을 지정하여 조인 전 값의 정렬 순서를 제어할 수 있습니다.

예를 들어 다음 쿼리는 각 카테고리 그룹의 id 값을 오름차순으로 정렬합니다.

<code class="language-sql">select category, LISTAGG(id, ', ') WITHIN GROUP(ORDER BY id ASC) as ids from myTable group by category;</code>

다음과 같은 출력이 생성됩니다.

<code>CATEGORY  IDS
--------- -----
1         1, 3, 5
2         2, 4</code>

위 내용은 쉼표 구분 기호를 사용하여 DB2 그룹의 열 값을 어떻게 연결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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