먹고살기/Oracle

oracle case when ~ then~ else end

JBR 2011. 8. 10. 10:27

CASE 컬럼명 | 표현식 WHEN 조건식1 THEN 결과1
WHEN 조건식2 THEN 결과2
.......
WHEN 조건식n THEN 결과n
ELSE 결과
END

조건문과 조건문 사이에는 콤마(,) 를 사용하지 않는다.
CASE 문은 반드시 END 로 끝내야 한다.
CASE 표현식은 ANSI SQL 형식도 지원한다.
결과 부분은 NULL 을 사용해서는 안된다.

ex>

하나의 컬럼으로 여러가지 값을 비교하고 싶다면

SELECT CASE 'ABC' WHEN 'ABC' THEN 'OK_STRING!!'

WHEN 'BBC' THEN 'NO_STRING!!'

ELSE 'NO_STRING!!'

END AS 별명별명
FROM dual

여러조건을 비교하고 싶다면

SELECT CASE WHEN 'A'<'B' THEN 'B WIN!!'

WHEN 'C'<'D' THEN 'D_WIN!!'

ELSE 'NO_STRING!!'

END AS 별명별명

FROM dual

이런식으로 사용하면 된다.

비교할때에 소문자하고 대문자하고 비교하면 비교('a'와 'A'는 다르다.)

한마디로 대소문자 비교한다는 말이다.

근데 'a'>'A'이다.. 소문자가 더 크게나온다.

문자열이 어케 되는지는 모르겠다..