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 when x = y then else 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;


결과 >>>>


[출처] http://joke00.tistory.com/103



블로그 이미지

532

처음 프로그래밍을 시작한 개발자들은 Hello World!를 기억 할 것이다. Hello world가 Hell World가 될 줄 몰랐던 한 개발자의 이야기. 게시글의 출처를 표기하며, 출처를 남기지 않고 펌을 하는것에 대해 법적 책임을 묻지 않습니다.

,