이번엔 JAVA 의 IF ~ ELSE 문과도 같은 CASE WHEN 문에 대해서 알아 봅시다.
CASE ~ WHEN ~ THEN ~ ELSE ~ END
[형식]
CASE 컬럼명 | 표현식 WHEN 조건식1 THEN 결과1
WHEN 조건식2 THEN 결과2
.......
WHEN 조건식n THEN 결과n
ELSE 결과
END
조건문과 조건문 사이에는 콤마(,) 를 사용하지 않는다.
CASE 문은 반드시 END 로 끝내야 한다.
CASE 표현식은 ANSI SQL 형식도 지원한다.
결과 부분은 NULL 을 사용해서는 안된다.
case when x = y then a else b end
: 조건 x =y 가 true 일 경우 a 이고 그렇지 않으면 b
case when x < y then a when x = y then b else c end
: 조건 x<y 가 true 일 경우 a 로, 조건 x = y 일 경우엔 b 로 그렇지 않으면 c 로 변경
case XYZ when 'foo' then 'moo' else 'bar' end
: XYZ 가 foo 일 경우 moo 로 변경, 그렇지 않으면 bar 로 변경
예제 만들기!
CREATE TABLE TEST_CASE_WHEN (A VARCHAR2 (5), B VARCHAR2 (5));
INSERT INTO TEST_CASE_WHEN VALUES ('*','*');
INSERT INTO TEST_CASE_WHEN VALUES ('+','+');
INSERT INTO TEST_CASE_WHEN VALUES ('-','-');
INSERT INTO TEST_CASE_WHEN VALUES ('.','.');
COMMIT;
토드나 SQLPLUS 혹은 SQLGATE 에서 Qurey 를 날려 봅시다.
자, Alias 인 as B 를 붙이므로 좀더 Grid 의 컬럼이 보기 깨끗해집니다. ^^
SELECT a, CASE
WHEN b = '*' THEN 'star'
WHEN b = '+' THEN 'plus'
WHEN b = '-' THEN 'minus'
ELSE '????'
END AS B
FROM test_case_when;
결과 >>>>
728x90
반응형
'DB > SQL' 카테고리의 다른 글
[Oracle] 조인 (JOIN), 아우터 조인(Outer Join) (0) | 2021.03.16 |
---|---|
[ORACLE] 오라클 테이블 컬럼 추가/수정/삭제/이름 변경 하는 방법(ALTER 테이블 ADD/MODIFY/DROP/RENAME) (0) | 2021.03.16 |
JOIN이란? (0) | 2021.03.16 |
[SQL Server] SELECT TOP (0) | 2021.03.16 |
오라클 cascade 사용방법 및 예제 (1) | 2021.03.14 |
댓글