[MSSQL] CASE WHEN 및 IF문 설명 및 사용법(조건문)
- DB/MS SQL
- 2021. 4. 5.
이번 포스팅에는 MS-SQL의 조건문에 해당하는 CASE문과 IF문에 대해 살펴보겠습니다.
조건문은 분기문이라고도 하며, 조건에 따라 해당 값을 다르게 줄 수 있습니다.✌
CASE WHEN구문?
조건에 따라 값을 지정해주며, 가장 많이 쓰이는 조건문으로 생각하시면 됩니다. :)
CASE
WHEN [조건절] THEN [TRUE일 경우 값]
ELSE [FALSE일 경우 값]
END
CASE WHEN구문 사용법?
아래 예시 테이블을 통한 결과값을 살펴보겠습니다.
(결과 값을 보면 이해가 더 빠르실 거에요!!)
<예시 사원 테이블>
NO_EMP | NM_KOR | SALARY |
2021040501 | 이태북 | 6200 |
2021040502 | 복세언 | 4900 |
2021040503 | 김준수 | 3350 |
2021040504 | 박원규 | 3800 |
2021040505 | 최세진 | 2750 |
SALARY(연봉)에 따른 성과 등급을 출력할 수 있도록 해보겠습니다.
SELECT NO_EMP, NM_KOR, SALARY,
CASE
WHEN SALARY >= 5000 THEN 'S'
WHEN SALARY BETWEEN 4000 AND 4999 THEN 'A'
WHEN SALARY BETWEEN 3000 AND 3999 THEN 'B'
WHEN SALARY BETWEEN 2000 AND 2999 THEN 'C'
ELSE 'D'
END AS 성과평가
FROM MA_EMP
저는 SALARY별 성과등급을 구성하였고,
위와 같이 쿼리를 구성했을 경우 실행 결과는 다음과 같습니다.
NO_EMP | NM_KOR | SALARY | 성과평가 |
2021040501 | 이태북 | 6200 | S |
2021040502 | 복세언 | 4900 | A |
2021040503 | 김준수 | 3350 | B |
2021040504 | 박원규 | 3800 | B |
2021040505 | 최세진 | 2750 | C |
IF ELSE구문?
IF ELSE 구문 또한 CASE WHEN 구문과 같은 조건문, 분기문에 해당합니다.
따라서 해당 조건에 따라 원하는 방향으로 출력할 수 있습니다.😁
IF ELSE구문 사용법?
IF [조건절 TRUE일 경우 값]
ELSE [조걸절 FALSE일 경우 값]
END [컬럼명]
IF ELSE구문은 DECLARE를 통한 변수를 선언해서 해당 값에 조건을 주겠습니다.
이 조건에 따라 "연봉이 ~~ 이상입니다." 라는 결과값을 출력해보도록 하겠습니다.
DECLARE @SALARY
SET @SALARY = 5000
IF @SALARY = 5000
BEGIN
PRINT '@SALARY는 5000이다.'
END
ELSE
BEGIN
PRINT '@SALARY는 5000이 아니다.'
END
위 쿼리를 실행할 경우,
"@SALARY는 5000이다."라는 결과값이 출력됩니다.
IF ~ ELSE 구문을 사용할 때 다중 IF문이 될 경우는 BEGIN과 END로 묶어주는 것이 좋아요.
왜냐하면, PRINT 메시지 출력할 때 원하지 않는 결과값이 출력될 수가 있어요.
조건식이 참일 때까지 구문을 실행하는데, 만약 2번째 구문이 참이되는 경우는 1번째 구문은 실행하지 않고 넘어갑니다.
추가로, IF문은 계속 사용이 가능하지만 코딩이 길어지는 경우는 CASE문을 사용하면 좋을 것 같습니다. :)
'DB > MS SQL' 카테고리의 다른 글
[MSSQL] INSERT INTO SELECT문 및 SELECT INTO문 차이점 (0) | 2021.09.01 |
---|---|
[MSSQL] MERGE 구문 설명 및 사용법 (데이터 입력/수정/삭제) (0) | 2021.04.18 |
[MSSQL] #2 EXISTS, NOT EXISTS문 설명 및 사용법 (3) | 2021.03.28 |
[MSSQL] #1 IN, NOT IN 구문 설명 및 사용법(오류 케이스) (1) | 2021.03.25 |
[MSSQL] 데이터 형태 변환 CONVERT / CAST 함수 설명 및 사용법 (0) | 2021.03.21 |