티스토리 뷰

LISTAGG 예제1

LISTAGG 괄호에 속한 ename 을 쉼표(',') 구분자를 이용해 출력할 것이며 출력할 데이터는 ename으로 정렬되어 출력된다. LISTAGG 함수를 이용한다면 GROUP BY 절은 필수로 지정해주어야한다.

SELECT deptno, LISTAGG(ename, ',') within group (order by ename) AS EMPLOYEE
FROM   emp
GROUP  BY deptno

 

 

LISTAGG 예제2

연결연산자를 이용해 각 사원의 월급을 함께 출력할 수 있다. ORDER BY 절에서 월급을 내림차순으로 정렬하게되면 월급이 높은 사람순으로 출력할 수 있다.

SELECT deptno
     , LISTAGG(ename||'('||SAL||')', ',') within group (ORDER BY SAL DESC) AS EMPLOYEE
FROM emp
GROUP BY deptno

 

LISTAGG 예제3

라인피드(CHR(10))와 캐리지 리턴(CHR(13))을 이용해 줄바꿈으로 EMPLOYEE를 구분할 수 있다.

CHR(10) : 라인피드, 줄바꿈을 수행한다.

CHR(13) : 캐리지 리턴, 커서 위치를 현재 줄의 맨 앞으로 위치시킨다.

OS 환경에 따라 라인피드, 캐리지 리턴을 모두 사용해야 줄바꿈이 이루어질 수도 있고, 그렇지 않은 경우도 있다. 예제 테스트 환경인 livesql 상에선 라인피드만으로 줄바꿈이 이루어졌다.

SELECT deptno, LISTAGG(ename, CHR(10)) within group (order by ename) AS EMPLOYEE
FROM   emp
GROUP  BY deptno

 

참조

[Oracle] 오라클 줄바꿈,개행 처리 (CHR(13),CHR(10)) -티스토리

chr(13)과 chr(10)의 차이점은? - 네이버블로그

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함