SQL_ DECODE, COALESCE, NULLIF, NVL, NVL2
DECODE(oracle) ex)SELECT DECODE(COL, CMP1, VAL1, CMP2, VAL2, VAL3 ) FROM TABLE; - if-else구조 - COL이 CMP1이면, VAL1, CMP2이면 VAL2, 그것도 아니라면, VAL3 리턴 COALESCE(postgreSQL, oracle) ex) SELECT COALESCE(COL, VAL1, VAL2) FROM TABLE; - COL이 null이면 VAL1, VAL1도 null이라면 VAL2 리턴 NULLIF(postgreSQL, oracle) ex) SELECT NULLIF(EXPR1, EXPR2) FROM TABLE; - EXPR1과 EXPR2이 같으면 NULL, 같지 않으면 EXPR1 리턴 NVL(oracle) ex) SELEC..
2023. 10. 13.
ORACLE_여러 행을 한 행으로 조회하기
1. WM_CONCAT * 중복제거 가능(DISTINCT 사용) , 10~11g SELECT WM_CONCAT(DISTINCT 컬럼명) FROM 테이블명 ; 2. LISTAGG * 4000byte 초과시 에러, 11g SELECT LISTAGG('컬럼명', ',') WITHIN GROUP (ORDER BY '정렬할 컬럼') FROM '테이블명' ; * LISTAGG는 DISTINCT 사용이 불가능하기 때문에 정규식을 사용해서 중복을 제거 SELECT REGEXP_REPLACE( LISTAGG('컬럼명', ',') WITHIN GROUP(ORDER BY '정렬할 컬럼').EXTRACT('//text()').'([^,]+)(,\1)*(,|$)', '\1\3') FROM '테이블명' ; 3. XMLAGG * ..
2022. 8. 5.