CASE WHEN THEN

JAVA의 CASA ~ SWITCH문과 비슷하다.

OO일 경우 OO로 출력해라~

비교할 컬럼을 지정하고 그 컬럼 안의 ROW값을 설정하여  ROW값일 경우 출력문자를 출력하는 방법이다.

 

형식

  SELECT 컬럼명, 컬럼명,

     CASE 비교컬럼명

        WHEN 검색값 THEN 출력문자

        WHEN 검색값 THEN 출력문자

        ELSE defalut값의 출력문자

     END

  FROM 테이블명;

 

예시

-- hr 스키마

SELECT employee_id, first_name, phone_number,
    CASE SUBSTR(phone_number,1,3)   -- 지역번호
        WHEN '515' THEN '서울'
        WHEN '590' THEN '부산'
        WHEN '650' THEN '공주'
        ELSE '기타'
    END    
FROM employees;

 

 

 

DECODE

CASE WHEN THEN과 똑같은 조건문인데, 사용하기는 DECODE가 더 간편하다.

 

형색

  SELECT 컬럼명, 컬럼명,

     DECODE ( 비교컬럼명,

        검색값, 출력문자,

        검색값, 출력문자,

        defalut값의 출력문자 )

  FROM 테이블명;

 

예시

SELECT employee_id, first_name, phone_number,
    DECODE(SUBSTR(phone_number, 1, 3),
        '515', '서울',
        '590', '부산',
        '650', '공주',
        '기타')
FROM employees;

+ Recent posts