[Oracle] CASE WHEN THEN


SELECT 로 가져오는 값에 대해서 조건을 걸어 값을 변환할 필요가 있는 경우 사용.


형식은 아래와 같다.


SELECT CASE

WHEN COLUMN1 > 90 THEN 'A'

WHEN COLUMN1 BETWEEN 80 AND 90 THEN 'B'

WHEN COLUMN1 BETWEEN 70 AND 80 THEN 'C'

ELSE 'D'

END SCORE

FROM ALLSCORE;


반드시 마지막에 END를 반드시 넣어줘야 한다.


IF ~ ELSE 와 같다고 생각하면 된다.


그럼 과거에 설명했던 DECODE를 CASE WHEN THEN으로 변경해보자.




SELECT NAME,

CASE SCORE

WHEN THEN 'E'

WHEN 2 THEN 'D'

WHEN 3 THEN 'C'

WHEN 4 THEN 'B'

WHEN 5 THEN 'A'

ELSE 'E'

END

FROM EXAMSCORE;


이렇게 점수별로 등급을 준다면 동일하겠다.




'IT Info > Oracle' 카테고리의 다른 글

[Oracle] Replace 함수 사용법  (0) 2019.12.11
[Oracle] 리스너(Listener)  (0) 2019.12.05
[Oracle] Decode  (0) 2019.12.02
[Oracle] Trigger  (0) 2019.12.02
[Oracle] 데이터 중복 제거 distinct, group by  (0) 2019.11.26

[Oracle] Decode


쉽게 말해 if else 구문을 select 절에서 사용할 수 있는 함수


SELECT DECODE(Column1, Value1, Result1, Value2, Result2, Result3) AS Result

FROM Table_Name;


Table의 Column1이 Value1과 같으면 Result1, Value2와 같으면 Result2, Value1, Value2 와 같지 않으면 Result3를 표시


Ex)

SELECT NAME, DECODE(SCORE, '1', 'E', '2', 'D', '3', 'C', '4', 'B', '5', 'A') AS SCORE

FROM EXAMSCORE; 



'IT Info > Oracle' 카테고리의 다른 글

[Oracle] 리스너(Listener)  (0) 2019.12.05
[Oracle] CASE WHEN THEN  (0) 2019.12.05
[Oracle] Trigger  (0) 2019.12.02
[Oracle] 데이터 중복 제거 distinct, group by  (0) 2019.11.26
[Oracle] MERGE INTO  (0) 2019.11.20

+ Recent posts