DB, SQL
[SQLD] CASE 표현식 : SEARCHED CASE와 SIMPLE CASE - 노랭이 43번
jhj.sharon
2023. 9. 1. 20:27
반응형
CASE 표현식은 SQL에서 조건에 따라 다른 값을 반환하는 데 사용되는 조건 연산자이다. CASE 표현식에서 SEARCHED CASE와 SIMPLE CASE 두 가지 형태가 있다.
| SIMPLE CASE
- 특정 컬럼 또는 표현식의 값에 따라 결과를 정한다.
- CASE 뒤에 특정 컬럼 또는 표현식이 오면 그 값이 WHEN에 지정된 값과 일치하는 지를 확인한다.
- 기본 형식은 아래와 같다.
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE default_result
END
CASE grade
WHEN 'A' THEN 'Excellent'
WHEN 'B' THEN 'Good'
ELSE 'Average'
END
| SEARCHED CASE
- 특정 조건이 참인지 거짓인지에 따라 결과를 결정한다.
- CASE 뒤에 특정 컬럼 또는 표현식이 오지 않는다. 대신 각 WHEN절은 참/거짓을 판단할 수 있는 조건을 포함한다.
- 어떠한 조건(condition)을 만족할 경우return 값이 정해진다.
- 아래 예시에는 CASE 뒤에 특정 컬럼이나 조건이 없다. WHEN절에 참/거짓을 판단할 수 있는 조건이 온다.
CASE
WHEN age < 20 THEN 'Teenager'
WHEN age < 30 THEN 'Twenties'
WHEN age < 40 THEN 'Thirties'
ELSE 'Older'
END
| 43번
- SEARCHED_CASE_EXPRESSION을 SIMPLE_CASE_EXPRESSION으로 바꾸는 문제이다.
- CASE 두에 특정 컬럼인 LOC을 붙이고 WHEN/THEN으로 간단히 표현한다.
//SEARCHED_CASE_EXPRESSION 문장 사례
SELECT LOC,
CASE WHEN LOC = 'NEW YORK' THEN 'EAST' // 참-거짓 판별가능
ELSE 'ETC'
END AS AREA
FROM DEPT;
//SIMPLE_CASE_EXPRESSION
SELECT LOC,
CASE LOC WHEN 'NEW YORK' THEN 'EAST'
ELSE 'ETC'
END AS AREA
FROM DEPT;반응형