SQL Server IF...ELSE 조건문: T-SQL 선택 쿼리 예
조건문이 필요한 이유는 무엇입니까?
SQL Server의 조건문은 다양한 조건에 대해 다양한 논리와 작업을 정의하는 데 도움이 됩니다. 이를 통해 명령문 내에 정의된 조건에 따라 다양한 작업을 수행할 수 있습니다. 실생활에서는 다른 활동이나 상황의 결과에 따라 많은 작업을 수행합니다.
SQL Case 문의 실시간 예는 다음과 같습니다.
- 내일 비가 오면 여행을 계획할 거예요.
- 내가 살고 있는 도시에서 출발하는 항공권 가격이 400달러 미만이라면 유럽으로 휴가를 갈 것이고, 그렇지 않으면 인근 관광지를 선호할 것입니다.
여기서는 위의 Road Trip과 같은 작업 중 하나가 조건부 의존 “내일 비가 올지 말지!”라는 또 다른 활동의 결과에 대해
마찬가지로 MS SQL도 T-SQL 문을 조건부로 실행하는 기능을 제공합니다.
IF… SQL Server의 Else 문
In MS의 SQL, 다른 경우라면 타입은 조건문.
모든 T-SQL 문은 다음을 사용하여 조건부로 실행할 수 있습니다. 다른 경우라면.
아래 그림은 SQL 서버의 IF ELSE를 설명합니다.
- 조건이 다음과 같이 평가되는 경우 참된, T-SQL 문과 그 뒤에 오는 IF SQL Server의 조건이 실행됩니다.
- 조건이 다음과 같이 평가되는 경우 거짓 T-SQL 문과 그 뒤에 오는 싫다면 키워드가 실행됩니다.
- IF T-SQL 문 또는 ELSE T-SQL 문이 실행되면 다른 무조건 T-SQL 문이 계속 실행됩니다.
IF… Else SQL의 구문 및 규칙
구문 :
IF <Condition> {Statement | Block_of_statement} [ ELSE {Statement | Block_of_statement}]
규칙 :
- 조건은 부울 식, 즉, 조건은 평가 시 부울 값을 반환합니다.
- IF ELSE 문 SQL 단일 T-SQL 문이나 T-SQL 문 블록을 조건부로 처리할 수 있습니다.
- 명령문 블록은 BEGIN 키워드로 시작하고 END 키워드로 닫혀야 합니다.
- BEGIN 및 END를 사용하면 SQL Server가 실행해야 하는 명령문 블록을 식별하고 이를 IF…ELSE T-SQL 블록의 일부가 아닌 나머지 T-SQL 문과 분리하는 데 도움이 됩니다.
- ELSE는 선택사항입니다.
IF…ELSE는 부울 표현식의 유일한 숫자 값입니다.
조건: 참
IF (1=1) PRINT 'IF STATEMENT: CONDITION IS TRUE' ELSE PRINT 'ELSE STATEMENT: CONDITION IS FALSE'
조건: 거짓
IF (1=2) PRINT 'IF STATEMENT: CONDITION IS TRUE' ELSE PRINT 'ELSE STATEMENT: CONDITION IS FALSE'
인수: 테이블이 다음과 같다고 가정합니다. '구루99' 아래에 표시된 대로 2개의 열과 4개의 행으로 구성됩니다.
우리는 '구루99' 추가 예의 표
IF…ELSE를 부울 표현식의 변수로 사용합니다.
조건: 참
DECLARE @Course_ID INT = 4 IF (@Course_ID = 4) Select * from Guru99 where Tutorial_ID = 4 ELSE Select * from Guru99 where Tutorial_ID != 4
조건: 거짓
DECLARE @Course_ID INT = 4 IF (@Course_ID != 4) Select * from Guru99 where Tutorial_ID = 4 ELSE Select * from Guru99 where Tutorial_ID != 4
IF...ELSE(시작 끝 포함)
조건: 참
DECLARE @Course_ID INT = 2 IF (@Course_ID <=2) BEGIN Select * from Guru99 where Tutorial_ID = 1 Select * from Guru99 where Tutorial_ID = 2 END ELSE BEGIN Select * from Guru99 where Tutorial_ID = 3 Select * from Guru99 where Tutorial_ID = 4 END
조건: 거짓
DECLARE @Course_ID INT = 2 IF (@Course_ID >=3) BEGIN Select * from Guru99 where Tutorial_ID = 1 Select * from Guru99 where Tutorial_ID = 2 END ELSE BEGIN Select * from Guru99 where Tutorial_ID = 3 Select * from Guru99 where Tutorial_ID = 4 END
Else가 없는 IF 문
ELSE 부분 없이 SQL에서 IF 문을 사용할 수 있습니다. ELSE 부분은 선택 사항이라고 언급한 것을 기억하세요. 예를 들어:
DECLARE @Course_ID INT = 2 IF (@Course_ID <=2) Select * from Guru99 where Tutorial_ID = 1
다음 내용이 인쇄됩니다.
거짓 조건을 실행하면 출력이 나오지 않습니다. 다음 쿼리를 고려하세요.
DECLARE @Course_ID INT = 2 IF (@Course_ID <=0) Select * from Guru99 where Tutorial_ID = 1
결과는 그
중첩된 IF…Else 문
다른과는 달리 프로그래밍 언어, SQL의 IF ELSE 조건 내에 ELSE IF 문을 추가할 수 없습니다. 이것이 바로 SQL 쿼리 문에 IF ELSE를 중첩할 수 있는 이유입니다. 아래에 설명되어 있습니다.
DECLARE @age INT; SET @age = 60; IF @age < 18 PRINT 'underage'; ELSE BEGIN IF @age < 50 PRINT 'You are below 50'; ELSE PRINT 'Senior'; END;
- 이 예에서 코드는 @age 값이 18 미만인 경우 미성년자를 인쇄합니다.
- 그렇지 않은 경우 ELSE 부분이 실행됩니다. ElSE 부분에는 중첩된 IF…ELSE가 있습니다.
- @age 값이 50 미만이면 You are below 50이 인쇄됩니다. 이러한 조건 중 어느 것도 해당되지 않으면 코드는 Senior를 인쇄합니다.
요약
- 변수는 자리 표시자 역할을 하는 객체입니다.
- 명령문 블록은 BEGIN 키워드로 시작하고 END 키워드로 닫혀야 합니다.
- Else는 IF… ELSE 문에서 선택적으로 사용할 수 있습니다.
- 다른 IF…ELSE 문에 SQL IF ELSE 조건을 중첩하는 것도 가능합니다.