오라클 표현식(Case~When~Then)




표현식 사용법



특정 값에 대해 정해진 조건에 따라 다르게 표현하기 위해 나타내는 식입니다.

예를 들어 90~100 점은 A, 80~90 은 B로 표현 하고 싶은데 실제 테이블에 저장 하고 있는 값은 

아래 처럼 점수만 있을 때 표현식을 가지고 A,B를 표시하는 것이 가능합니다.


아래 테이블에는 점수 정보만 제공 하고 있습니다.



이것을 표현식을 이용하여 A,B,C로 나오게 해보겠습니다.


SELECT ID, NAME, SCORE,

      CASE WHEN SCORE > 90 THEN 'A'

           WHEN SCORE > 80 AND SCORE < 90 THEN 'B'

           WHEN SCORE > 70 AND SCORE < 80 THEN 'C'

           ELSE 'D'

      END AS GRADE

FROM TBL_REPORT_CARD



위의 결과는 아래와 같습니다.





테이블에 없던 GRAND 컬럼을 표현식으로 꾸며 봤습니다.

표현식 사용 법은 간단히 다음과 같습니다.


CASE WHEN [조건1] THEN [값1]

        WHEN [조건2] THEN [값2]

....

        ELSE [그밖에 값]

END AS [컬럼 값]


예제를 가지고 설명을 드리겠습니다.



CASE WHEN SCORE > 90 THEN 'A'


SCORE 컬럼 값이 90 이상이면 A



       WHEN SCORE > 80 AND SCORE < 90 THEN 'B'


SCORE 컬럼 값이 80이상이고 90이하면 B



       ELSE 'D'


그밖에는 D



END AS GRADE


표현식 종료 AS (ALIAS 이다. 즉 컬럼에 어떻게 표현 할지 나타내는 예약어다. )


이상으로 오라클 표현식에 대해 설명 드렸습니다.

도움이 되셨나요?

반응형

'인프라 > Oracle' 카테고리의 다른 글

[Oracle] UNION, INTERSECT, MINUS  (1) 2016.12.05
[Oracle] GROUP BY 절, HAVING 절  (0) 2016.12.04
[Oracle] 시퀀스(Sequence) 사용법  (0) 2016.11.29
[Oracle] 테이블스페이스(Table Space) 생성  (0) 2016.11.27
[Oracle] 정렬(ORDER BY)  (0) 2016.11.22

+ Recent posts