반응형
쿼리를 작성하다 보면 생각보다 많이 사용하게 되는 함수가 DECODE 함수이다.
복잡한 로직을 짜게 된다면 가독성을 고려하여 CASE WHEN 구문을 추천하지만,
간단한 IF ELSE 로직을 처리하기 위함이라면 DECODE 함수를 활용한다면 간결하게 쿼리를 작성할 수 있다.
구문 예시
DECODE(컬럼, 조건1, 결과1, 조건2, 결과2, 조건3, 결과3, ... , 조건에 해당하지 않았을 때의 값)
구문 예시
-- COL1 값이 'A' 인 경우에만 'Y' 반환하고, 그 외에는 'N' 반환하기
SELECT DECODE(COL1, 'A', 'Y', 'N') AS RESULT
FROM TBL1
-- COL1 값이 'A'이면서, COL2 값이 '9' 인 경우에 'Y' 반환하고, 그 외에는 'N' 반환하기
SELECT DECODE(COL1, 'A', DECODE(COL2, '9', 'Y', 'N'), 'N') AS RESULT
FROM TBL1
[ 참고 ]
- [Oracle] 오라클 DECODE 함수 사용방법 (if else, 디코드) (https://gent.tistory.com/227)
반응형
'Develops > SQL' 카테고리의 다른 글
[ORACLE] 특정 행 추출하기 (FETCH, ROWNUM, OFFSET, PERCENT, LIMIT, TOP) (0) | 2024.11.02 |
---|---|
[ORACLE] NVL, NVL2, NULLIF, COALESCE 함수 (NULL 값 처리, 치환 등) (0) | 2024.08.03 |
[MySQL] 위도, 경도로 거리를 계산하기(하버사인 공식, SIN, COS, ACOS, RADIANS) (0) | 2024.07.21 |
[PostgreSQL] GENERATE_SERIES 사용 예시 (범위 안의 일련의 값 생성) (0) | 2024.07.21 |
[Tibero] AGGR_CONCAT 함수 (여러 행을 하나의 값으로 합치기) (0) | 2024.07.14 |