출처 : https://gent.tistory.com/15?category=360526 오라클 WITH AS 임시테이블 사용법.
WITH AS는 임시테이블로써 보통 서브쿼리로서 사용한다. VIEW 와의 차이점은 VIEW는 한 번 생성하면 DROP 해주기 전까지 유지가 되지만, 이 쿼리는 일회용이다.
기존에 이렇게 출력되는 임시테이블이었지만, 하나의 Row로 나타내고자 한다. WM_CONCAT(BURGER) BURGER WM_CONCAT 함수를 통해 하나의 ROW 로 합칠 수 있다.
하지만 구분자가 , 로 고정이고 정렬이 불가능하다는 단점이 있다. SUBSTR( XMLAGG( XMLELEMENT(COL ,'$', BURGER) ORDER BY BURGER).EXTRACT('//text()' ).GETSTRINGVAL(), 2) BURGER 다음과 같이 사용하면 구분자를 선택할 수 있고, 정렬도 할 수 있다.
단점은 복잡해서 외우기 힘들다. 결과는 다음과 같다.
WITH TEST_TAB...
#
oracle
#
withas
#
wm_concat
#
여러행한줄로
#
오라클
#
임시테이블