집 >데이터 베이스 >MySQL 튜토리얼 >쉼표 구분 기호를 사용하여 DB2 그룹의 열 값을 어떻게 연결할 수 있습니까?
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!