SQL(XML)
오라클 그룹화 한줄로 만들기
도나가
2021. 11. 2. 18:20
이름 | 권한 |
A | 관리자 |
A | 일반사용자 |
A | 유령사용자 |
검색이 이렇게 나올때, 한줄로 만들고 싶다면,
LISTAGG 함수를 사용한다.
LISTAGG(권한 , ',') WITHIN GROUP ( ORDER BY 권한)
이름 | 권한 |
A | 관리자,일반사용자,유령사용자 |
만약 그룹화시 중복이 나온다면 REGEXP_REPLACE 함수를 사용한다.
이름 | 권한 |
A | 관리자,관리자,일반사용자 |
REGEXP_REPLACE(LISTAGG(권한 , ',') WITHIN GROUP ( ORDER BY 권한), '([^,]+)(,\1)+', '\1') AS 권한
이름 | 권한 |
A | 관리자, 일반사용자 |
만약 REGEXP_REPLACE 함수를 사용해도 중복제거가 안된다면 LISTAGG(권한 , ',') -> ',' 부분에 공백이 있는지 없는지 잘 확인하자 이것땜에 2시간 날려먹었다. 신난다.