이름 | 권한 |
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시간 날려먹었다. 신난다.
'SQL(XML)' 카테고리의 다른 글
오라클 List 값 MERGE시키기 (0) | 2021.11.17 |
---|---|
SELECT 컬럼 순서대로 가져오기 (0) | 2021.07.29 |