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를 설명합니다.

If와 Else의 작동 방식
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…ELSE

조건: 거짓

IF (1=2)
PRINT 'IF STATEMENT: CONDITION IS TRUE'
ELSE
PRINT 'ELSE STATEMENT: CONDITION IS FALSE'

부울 표현식에 숫자 값만 있는 IF…ELSE

인수: 테이블이 다음과 같다고 가정합니다. '구루99' 아래에 표시된 대로 2개의 열과 4개의 행으로 구성됩니다.

부울 표현식에 숫자 값만 있는 IF…ELSE

우리는 '구루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

부울 표현식의 변수를 사용한 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

부울 표현식의 변수를 사용한 IF...ELSE

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

시작 끝이 있는 IF...ELSE

조건: 거짓

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

시작 끝이 있는 IF...ELSE

Else가 없는 IF 문

ELSE 부분 없이 SQL에서 IF 문을 사용할 수 있습니다. ELSE 부분은 선택 사항이라고 언급한 것을 기억하세요. 예를 들어:

DECLARE @Course_ID INT = 2

IF (@Course_ID <=2)
	Select * from Guru99 where Tutorial_ID = 1

다음 내용이 인쇄됩니다.

Else가 없는 IF 문

거짓 조건을 실행하면 출력이 나오지 않습니다. 다음 쿼리를 고려하세요.

DECLARE @Course_ID INT = 2

IF (@Course_ID <=0)
	Select * from Guru99 where Tutorial_ID = 1

결과는 그

Else가 없는 IF 문

중첩된 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를 인쇄합니다.

중첩된 IF…Else 문

요약

  • 변수는 자리 표시자 역할을 하는 객체입니다.
  • 명령문 블록은 BEGIN 키워드로 시작하고 END 키워드로 닫혀야 합니다.
  • Else는 IF… ELSE 문에서 선택적으로 사용할 수 있습니다.
  • 다른 IF…ELSE 문에 SQL IF ELSE 조건을 중첩하는 것도 가능합니다.