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;
'IT > SQL' 카테고리의 다른 글
[Oracle DB SQL] SQL 정의 (0) | 2021.05.30 |
---|---|
[Oracle DB SQL] OVER()/PARTITION BY/분석함수/RANK() /DENSE_RANK()/ROW_NUMBER()/ROWNUM (0) | 2021.05.29 |
[Oracle DB SQL] SUB QUERY 겉핥기 (0) | 2021.05.29 |
[Oracle DB SQL] JOIN/inner join/full outer join/cross join /left outer join/right outer join/self join (0) | 2021.05.27 |
[Oracle DB SQL] ORDER BY/DESC/ASC/GROUP/HAVING/GROUP FUNCTION/DISTINCT (0) | 2021.05.26 |