메뉴 건너뛰기

?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

WM_CONCAT 함수를 이용하여 손쉽게 여러행의 데이터를 한 컬럼으로 합칠 수 있다.

 방법 1. (WM_CONCAT 이용)

--가상 테이블
WITH TEST_TABLE AS (
    SELECT '고구려' COUNTRY, '1대' ST, '동명성왕'   KING_NM FROM DUAL UNION ALL
    SELECT '고구려' COUNTRY, '3대' ST, '대무신왕'   KING_NM FROM DUAL UNION ALL
    SELECT '백제'   COUNTRY, '1대' ST, '온조왕'     KING_NM FROM DUAL UNION ALL
    SELECT '고구려' COUNTRY, '2대' ST, '유리왕'     KING_NM FROM DUAL UNION ALL
    SELECT '백제'   COUNTRY, '3대' ST, '기루왕'     KING_NM FROM DUAL UNION ALL
    SELECT '신라'   COUNTRY, '1대' ST, '남해왕'     KING_NM FROM DUAL UNION ALL
    SELECT '신라'   COUNTRY, '1대' ST, '박혁거세'   KING_NM FROM DUAL UNION ALL
    SELECT '백제'   COUNTRY, '2대' ST, '다루왕'     KING_NM FROM DUAL UNION ALL
    SELECT '신라'   COUNTRY, '1대' ST, '유리이사금' KING_NM FROM DUAL
)

--조회 쿼리
SELECT COUNTRY
     , WM_CONCAT(KING_NM) KING_NM
  FROM TEST_TABLE
 GROUP BY COUNTRY

- WM_CONCAT  함수를 이용하여 여러행의 값을 하나의 컬럼으로 합칠 수 있다.

값의 구분은 쉼표(,)로 구분되어 합쳐진다.

 

□ 방법 2. (XMLAGG, XMLELEMENT 이용)

--가상 테이블
WITH TEST_TABLE AS (
    SELECT '고구려' COUNTRY, '1대' ST, '동명성왕'   KING_NM FROM DUAL UNION ALL
    SELECT '고구려' COUNTRY, '3대' ST, '대무신왕'   KING_NM FROM DUAL UNION ALL
    SELECT '백제'   COUNTRY, '1대' ST, '온조왕'     KING_NM FROM DUAL UNION ALL
    SELECT '고구려' COUNTRY, '2대' ST, '유리왕'     KING_NM FROM DUAL UNION ALL
    SELECT '백제'   COUNTRY, '3대' ST, '기루왕'     KING_NM FROM DUAL UNION ALL
    SELECT '신라'   COUNTRY, '2대' ST, '남해왕'     KING_NM FROM DUAL UNION ALL
    SELECT '신라'   COUNTRY, '1대' ST, '박혁거세'   KING_NM FROM DUAL UNION ALL
    SELECT '백제'   COUNTRY, '2대' ST, '다루왕'     KING_NM FROM DUAL UNION ALL
    SELECT '신라'   COUNTRY, '3대' ST, '유리이사금' KING_NM FROM DUAL
)

--조회 쿼리
SELECT COUNTRY
     , SUBSTR(
        XMLAGG(
            XMLELEMENT(COL ,',', KING_NM) ORDER BY ST).EXTRACT('//text()'
        ).GETSTRINGVAL()
       , 2) KING_NM
  FROM TEST_TABLE
 GROUP BY COUNTRY

- 첫번째 방법에 비하여 조금 복잡해 보이나 합쳐지는 값의 구분자를 쉼표(,) 뿐만 아니라 사용자가 직접 값의 구분자를 지정 할 수 있다. 또한 해당 값의 정렬을 지정 가능 하다. 

 

□ 결과

○ 조회 전 (TEST_TABLE)

○ 조회 후


  1. 피봇(Pivot)을 이용하여 행(Row)을 열(Column)로 바꾸기

  2. No Image 12Sep
    by
    2016/09/12 Views 7936 

    테이블 생성(다중 PK)

  3. No Image 08Dec
    by
    2016/12/08 Views 7704 

    쿼리 파싱 시간 측정 - query parsing time

  4. 컬럼의 값 만큼 행(Row)을 늘리기

  5. No Image 12Sep
    by
    2016/09/12 Views 7906 

    초 이하 단위 시간 얻어오기

  6. 조건절에 WHERE 1=1, WHERE 1=0 사용하여 쿼리 간편하게 사용하기

  7. No Image 12Sep
    by
    2016/09/12 Views 7168 

    제로보드 reg_date 필드 date 형으로 변환하기

  8. No Image 12Sep
    by
    2016/09/12 Views 7249 

    자동증가 SEQUENCE 생성

  9. No Image 08Dec
    by
    2016/12/08 Views 13469 

    오라클에서 레코드 값이 없을때

  10. 오라클] 숫자 체크 방법 (IS_NUMBER, IS_NUMERIC)

  11. 오라클11g DB 생성

  12. No Image 08Dec
    by
    2016/12/08 Views 7215 

    오라클(PL/SQL) 미리 정의된 예외처리

  13. 오라클(Oracle) 에서 varchar 와 varchar2 의 차이점은 무엇인가

  14. 오라클(Oracle) 대용량 데이터 토드(Toad)를 이용해서 넣기

  15. 오라클(Oracle) SUBSTR 함수로 문자열을 다양하게 자르는 방법

  16. No Image 08Dec
    by
    2016/12/08 Views 8417 

    오라클 해당 월 의 맨첫날 ~ 마지막 일 가져 오는 쿼리

  17. 오라클 테이블 생성 스크립트 DDL 추출 - 깔끔하게 Table 전부 추출(Export)하기

  18. No Image 12Sep
    by
    2016/09/12 Views 10980 

    오라클 인스턴스 클라이언트(oracle instant client)

  19. 오라클 웹로직 12.1.3 설치 방법

  20. No Image 21Sep
    by
    2016/09/21 Views 7274 

    오라클 암호를 분실한 경우 접속 방법

Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved