MSSQL CASE WHEN THEN 조건식 사용법 - 식(1)

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'
 SELECT 문에 단순 CASE 식 사용 - 예제 1)


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
SELECT 문에 검색된 CASE 식 사용 - 예제 2)


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
UPDATE 문에 CASE 사용 - 예제 3)


4. WHERE 절에 CASE 사용 – 예제 4)

-- WHERE 절에 CASE 사용
SELECT *
  FROM BS_DEMO_9
 WHERE (CASE GENDER 
           WHEN 1 THEN '남' 
           WHEN 2 THEN '여' 
           ELSE '' 
        END) = '남'   -- '남' 받는변수
WHERE 절에 CASE 사용 - 예제 4)

함께 보면 좋은 게시글

위로 스크롤