오라클 표현식(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 |