MSSQL CASE WHEN THEN 조건식 사용법 – 식(1)
MS SQL에서 CASE 식은 조건 목록을 평가하고 가능한 여러 결과 식 중 하나를 반환합니다. CASE 식은 거의 모든 문 및 절에 사용할 수 있고 특히 SELECT, UPDATE, WHERE 절에서 아주 많이 사용합니다.
그럼 간단한 예제를 통해서 CASE 식에 대해서 알아보죠.
포스트 기준
– Microsoft SQL Server 2019
– SSMS 18.10
구문
◎ 구문(syntaxsql)
▶ 단순 CASE 식
CASE input_expression
WHEN when_expression THEN result_expression [ …n ]
[ ELSE else_result_expression ]
END
▶ 검색된 CASE 식
CASE
WHEN when_expression THEN result_expression [ …n ]
[ ELSE else_result_expression ]
END
사용 예제
1. SELECT 문에 단순 CASE 식 사용 – 예제 1)
-- SELECT 문에 단순 CASE 식 사용
SELECT NAME AS '성명',
GRADE AS '학년',
(CASE GENDER
WHEN '1' THEN '남자'
WHEN '2' THEN '여자'
ELSE ''
END) AS '성별'
FROM BS_DEMO_9
WHERE P_ID < '1008'
2. SELECT 문에 검색된 CASE 식 사용 – 예제 2)
-- SELECT 문에 검색된 CASE 식 사용
SELECT SCORE AS '점수',
(CASE WHEN SCORE >= 90 THEN 'A+'
WHEN SCORE >= 80 AND SCORE < 90 THEN 'A'
WHEN SCORE >= 70 AND SCORE < 80 THEN 'B'
ELSE 'F'
END) AS '성적'
FROM BS_DEMO_8_3
3. UPDATE 문에 CASE 사용 – 예제 3)
-- UPDATE 문에 CASE 사용
UPDATE BS_DEMO_8_3
SET CLASS = (CASE WHEN SCORE >= 90 THEN 'A+'
WHEN SCORE >= 80 AND SCORE < 90 THEN 'A'
WHEN SCORE >= 70 AND SCORE < 80 THEN 'B'
ELSE 'F'
END)
-- 데이터 확인
SELECT *
FROM BS_DEMO_8_3
4. WHERE 절에 CASE 사용 – 예제 4)
-- WHERE 절에 CASE 사용
SELECT *
FROM BS_DEMO_9
WHERE (CASE GENDER
WHEN 1 THEN '남'
WHEN 2 THEN '여'
ELSE ''
END) = '남' -- '남' 받는변수
함께 보면 좋은 게시글
- MSSQL IF…ELSE 블록 문법 – 흐름 제어(2)
- MSSQL 논리 연산자 BETWEEN, EXISTS, IN, LIKE, NOT 등 (WHERE 절)
- MSSQL IIF, CHOOSE 논리 함수 사용법 – CASE 식 비교
- MSSQL SELECT INTO 테이블 구조 및 데이터 복사하기 (SELELCT 절)
- MSSQL UNION, UNION ALL 차이점 및 사용법
이 글이 도움이 되셨다면 공유 부탁 드립니다.


![[SSMS] 로컬 서버(PC)에 설치한 MSSQL 서버 연결하는 방법](https://bluesharehub.com/wp-content/uploads/2022/02/img_41.png)
