SQL의 Case Expression (Feat. SQLD)

업데이트:

개요

SQL에서는 CASE WHEN THEN을 활용해 조건에 따른 데이터 처리를 할 수 있다.
이 CASE WHEN THEN문을 Case Expression이라고 부르며, 이를 또 Searched case expression, Simple case expression 으로 나눈다.

searched와 simple의 차이

1
2
3
4
5
6
7
# Searched case expression
CASE
  WHEN {expression} THEN {value} ELSE {value} END

# Simple case expression
CASE {variable} 
  WHEN {comparable value} THEN {value} ELSE {value} END

사용 예

SELECT 결과를, 조건에 따라 보여주고 싶을 때 사용할 수 있다.

simple

1
2
3
4
5
6
SELECT emp_no, (CASE emp_no
  WHEN 1001 THEN 'Y'
  WHEN 1003 THEN 'Y'
  ELSE 'N' END
  ) AS 'vip_yn'
FROM emp

searched

1
2
3
4
5
6
SELECT emp_no, (CASE 
  WHEN emp_no=1001 THEN 'Y'
  WHEN emp_no=1003 THEN 'Y'
  ELSE 'N' END
  ) AS 'vip_yn'
FROM emp

또는, 원하는 Order를 주기 위해 ORDER BY에서도 사용이 가능하다.

1
2
3
4
5
6
SELECT *
FROM emp
ORDER BY ( CASE emp_name
  WHEN '서지애' THEN 1
  WHEN '강위찬' THEN 2
  ELSE 3 END )

태그:

카테고리:

업데이트:

댓글남기기