MSSQL IF…ELSE 블록 문법 – 흐름 제어(2)
MS SQL 흐름 제어문 중에서 IF…ELSE 문은 조건에 따라 분기할 때 사용합니다. BEGIN…END 블록문과 같이 사용되는 경우가 거의 대부분입니다. 다른 프로그램 언어와 동일한 동작을 한다고 보시면 되고 특히 저장 프로시저로 개발할 때 필수로 사용되는 흐름 제어문이죠.
그럼 간단한 예제를 통해서 IF…ELSE 문에 대해서 알아보죠.
포스트 기준
– Microsoft SQL Server 2019
– SSMS 18.10
사용 예제
1. 구문(syntaxsql)
IF Boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
▶ IF…ELSE 블록은 중첩될 수 있습니다.
2. IF…ELSE 예제
DECLARE @GRADE INT, -- 학년
@GENDER INT -- 성별
SET @GRADE = 0 -- 초기화
SET @GENDER = 0 -- 초기화
SELECT @GRADE = GRADE, -- 학년(1,2,3,4)
@GENDER = GENDER -- 성별(1:남자, 2:여자)
FROM BS_DEMO_9
WHERE P_ID = '1001'
-- 1학년인 경우
IF @GRADE = 1
BEGIN
-- 남자인 경우
IF @GENDER = 1
BEGIN
PRINT '남자'
END
-- 여자인 경우
ELSE
BEGIN
PRINT '여자'
END
PRINT '1학년'
END
ELSE IF @GRADE = 2
BEGIN
PRINT '2학년'
END
ELSE IF @GRADE = 3 PRINT '3학년'
ELSE
PRINT '4학년'① 문 블록을 정의하려면 흐름 제어 키워드인 BEGIN 및 END를 사용하셔야 됩니다.
▶ BEGIN 및 END 키워드 생략 시 오류 발생
▶ IF문은 중첩해서 사용 가능합니다.
② 단문인 경우는 한 줄로 표기 가능합니다.
③ 단문인 경우는 BEGIN 및 END 키워드 생략이 가능합니다.
▶ 저 같은 경우는 습관적으로 BEGIN 및 END 키워드를 무조건 넣어줍니다.

함께 보면 좋은 게시글
- MSSQL BEGIN…END 블록 문법 – 흐름 제어(1)
- MSSQL CASE WHEN THEN 조건식 사용법 – 식(1)
- MSSQL WHILE(반복문), CONTINUE, BREAK 사용법 – 흐름 제어(3)
- MSSQL GOTO 문, RETURN 문 사용법 – 흐름 제어(4)
- MSSQL IIF, CHOOSE 논리 함수 사용법 – CASE 식 비교
이 글이 도움이 되셨다면 공유 부탁 드립니다.


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