Coding Planet

[SQLD] CASE 표현식 : SEARCHED CASE와 SIMPLE CASE - 노랭이 43번 본문

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;
반응형
Comments