IF문 SQL구현 (CASE)
: SQL로 IF문 구현
- 등호(=)와 부등호(<,>,<=, >=) 모두 비교 가능
사용 예시
SELECT column1, column2, column3, CASE WHEN column3 >= 5000 THEN 1000
WHEN column3 >= 3000 THEN 500
WHEN column3 >= 1000 THEN 100
ELSE 0 END AS nickname
FROM tablename
WHERE column2 IN('KOREA', 'USA');
: column2가 'KOREA', 'USA'일 때, column3가 5000 이상이면 1000, 5000보다 작고 3000 이상이면 500, 3000 보다 작고 1000 이상이면 100, 나머지는 0을 nickname에 출력
IF문 표현
IF문 | 내용 |
IF column3 >= 5000 THEN 1000 | column3가 5000 이상이면 1000 출력 |
ELSE IF column3 >= 3000 THEN 500 | column3가 5000 보다 작고 3000 이상이면 500 출력 |
ELSE IF column3 >= 1000 THEN 100 | column3가 3000 보다 작고 1000 이상이면 100 출력 |
ELSE 0 | 위 모든 조건이 아니라면 0 출력 |
CASE의 NULL 사용 예시
SELECT column1, column2, column3, CASE WHEN column3 is null THEN 1000
ELSE 0 END as nickname
FROM tablename
WHERE column2 IN('KOREA','USA');
: column3가 null이면 1000, 아니면 0을 nickname에 출력
IF문 표현
IF문 | 내용 |
IF column3 is null THEN 1000 | column3가 null이면 1000 출력 |
ELSE 0 | 아니면 0 출력 |
CASE의 조건 활용 예시
SELECT column1, column2, CASE WHEN column2 IN('KOREA', 'USA') THEN 500
WHEN column2 IN('GERMANY', 'ITALY') THEN 300
ELSE 0 END as nickname
FROM tablename;
: column2가 'KOREA', 'USA'이면 500, column2가 'GERMANY', 'ITALY'이면 300, 아니면 0을 nickname에 출력
IF문 표현
IF문 | 내용 |
IF column2 IN('KOREA', 'USA') THEN 500 | column2가 'KOREA', 'USA'면 500 출력 |
ELSE IF column2 IN('GERMANY', 'ITALY') THEN 300 | 'GERMANY', 'ITALY'면 300 출력 |
ELSE 0 | 아니면 0 |
'CS > 데이터베이스' 카테고리의 다른 글
[Oracle] 최소값 출력 (MIN) (0) | 2020.09.07 |
---|---|
[Oracle] 최대값 출력 (MAX) (0) | 2020.09.07 |
[Oracle] IF문 SQL구현 (DECODE) (0) | 2020.09.06 |
[Oracle] NULL 값 대신 출력 (NVL, NVL2) (0) | 2020.09.04 |
[Oracle] 암시적 형 변환 (0) | 2020.09.04 |