개발기록/Oracle & SQLD

SQL 함수, 단일행 함수 CASE, DECODE

쎄정 2022. 5. 17. 16:08
728x90
반응형

목차

    CASE

    CASE WHEN ELSE END
    조건이 맞으면 THEN절을 수행하고 아니라면 ELSE문을 수행한다.
    WHEN, ELSE, END절에 서브쿼리를 넣어 사용할 수 있다.

    CASE WHEN 조건
     THEN 값 OR SQL
     ELSE 값 OR SQL
     END

    CASE 예시

    SELECT CASE WHEN SAL_CD = '100001' THEN '기본급'
    			WHEN SAL_CD = '100002' THEN '상여금'
    			WHEN SAL_CD = '100003' THEN '특별상여금'
    			WHEN SAL_CD = '100004' THEN '야근수당'
    			WHEN SAL_CD = '100005' THEN '주말수당'
    			WHEN SAL_CD = '100006' THEN '점심식대'
    			WHEN SAL_CD = '100007' THEN '복지포인트'
    			ELSE '유효하지 않음'
    			END SAL_NM
    FROM TB_SAL

    DECODE

    DECODE(표현식, 비교값1, 결과값1, 비교값2, 결과값2 ...)
    표현식이 비교값1과 같으면 결과값1, 표현식이 비교값2과 같으면 결과값2
    표현식과 비교값을 비교하여 결과 값을 리턴한다.

    DECODE 예시

    SELECT DECODE(SAL_CD, '1400001', '기본급', '100002', '상여금', '기타') AS SAL_NM FROM TB_SAL;

    728x90
    반응형