728x90
LISTAGG
LISTAGG 함수는 Oracle에서 특정 컬럼의 데이터들을 하나의 로우에 출력해야 할 때 사용한다.
SELECT LISTAGG(가져올 컬럼, 구분자) WITHIN GROUP (ORDER BY 순서컬럼)
FROM 테이블 이름
예시
SELECT FOOD_NM
FROM FOOD_INFO
FOOD_NM | |
1 | 피자 |
2 | 치킨 |
3 | 햄버거 |
4 | 스파게티 |
5 | 짜장면 |
6 | 비빔밥 |
7 | 불고기 |
위 데이터를 LISTAGG 함수를 통해 하나의 컬럼으로 조회해보자
SELECT LISTAGG(FOOD_NM, ',') AS FOOD_NM
FROM FOOD_INFO
FOOD_NM | |
1 | 피자, 치킨, 햄버거, 스파게티, 짜장면, 비빔밥, 불고기 |
여기서 컬럼을 합치기 전 정렬을 하고 싶다면 WITHIN GROUP 함수를 사용한다.
SELECT LISTAGG(FOOD_NM, ',') WITHIN GROUP (ORDER BY FOOD_NM) AS FOOD_NM
FROM FOOD_INFO
FOOD_NM | |
1 | 불고기, 비빔밥, 스파게티, 짜장면, 치킨, 햄버거,피자 |
728x90
'SQL' 카테고리의 다른 글
Oracle - 줄바꿈(개행) 제거 (2) | 2023.08.16 |
---|---|
DB - DB View에 대해서 알아보자 (0) | 2023.08.10 |
SQL - Oracle과 MySQL 문법 차이 (0) | 2023.06.28 |
SQL - 가독성 좋은 SQL 작성하기 (0) | 2023.06.23 |
SQL - MySQL 워크밴치에서 Foreign key 삭제하기 (0) | 2023.06.20 |