수색…


단일 IF 문

대부분의 다른 프로그래밍 언어와 마찬가지로 T-SQL은 IF..ELSE 문도 지원합니다.

예를 들어, 아래 예제에서 1 = 1 은 True로 평가되고 컨트롤은 BEGIN..END 블록에 들어가고 Print 문은 'One is equal to One'

IF ( 1 = 1)  --<-- Some Expression 
 BEGIN
   PRINT 'One is equal to One'
 END

여러 IF 문

여러 개의 IF 문을 사용하여 여러 개의 표현식을 완전히 독립적으로 검사 할 수 있습니다.

아래 예제에서는 각 IF 문의 표현식이 평가되고, 참이면 BEGIN...END 블록의 코드가 실행됩니다. 이 특정 예에서 First 및 Third 표현식은 true이고 해당 인쇄 명령문 만 실행됩니다.

IF (1 = 1)  --<-- Some Expression      --<-- This is true 
BEGIN
    PRINT 'First IF is True'           --<-- this will be executed
END

IF (1 = 2)  --<-- Some Expression 
BEGIN
    PRINT 'Second IF is True'
END

IF (3 = 3)  --<-- Some Expression        --<-- This true 
BEGIN
    PRINT 'Thrid IF is True'             --<-- this will be executed
END

단일 IF..ELSE 문

단일 IF..ELSE 문에서 IF 문에 BEGIN..END 이 True로 평가되면 컨트롤은 첫 번째 BEGIN..END 블록에 들어가고 해당 블록 안의 코드 만 실행되고 다른 블록은 무시됩니다.

반면 표현식이 False 평가되면 ELSE BEGIN..END 블록이 실행되고 컨트롤은 첫 번째 BEGIN..END 블록으로 들어 가지 않습니다.

아래 예제에서 표현식은 false로 평가되고 Else 블록은 'First expression was not true' 문자열을 인쇄하여 실행됩니다.

IF ( 1 <> 1)  --<-- Some Expression
 BEGIN
     PRINT 'One is equal to One'
 END
ELSE 
 BEGIN
     PRINT 'First expression was not true'
 END

IF ... 최종 ELSE 문과 함께 여러 IF ...

다중 IF...ELSE IF 문이 있지만 표현식이 모두 True로 평가되지 않는 경우 일부 코드 만 실행하려는 경우 IF 가 하나도 없을 경우 실행되는 마지막 ELSE 블록을 간단히 추가 할 수 있습니다 또는 ELSE IF 표현식이 참으로 평가됩니다.

아래 예제에서 IF 또는 ELSE IF 표현식 중 하나도 True가 아니므로 ELSE 블록 만 실행되고 'No other expression is true'

IF ( 1 = 1 + 1 )
    BEGIN
       PRINT 'First If Condition'
    END 
ELSE IF (1 = 2)
    BEGIN
        PRINT 'Second If Else Block'
    END
ELSE IF (1 = 3)
    BEGIN
        PRINT 'Third If Else Block'
    END
ELSE 
    BEGIN
        PRINT 'No other expression is true'  --<-- Only this statement will be printed
    END

여러 IF ... ELSE 문

종종 우리는 여러 표현식을 검사하고 그 표현식을 기반으로 특정 조치를 취할 필요가 있습니다. 이 상황은 여러 IF...ELSE IF 문을 사용하여 처리됩니다.

이 예제에서 모든 표현식은 위에서 아래로 평가됩니다. 표현식이 true로 평가되면 해당 블록 내의 코드가 실행됩니다. 표현식이 true로 평가되지 않으면 아무 것도 실행되지 않습니다.

IF (1 = 1 + 1)
BEGIN
    PRINT 'First If Condition'
END 
ELSE IF (1 = 2)
BEGIN
    PRINT 'Second If Else Block'
END
ELSE IF (1 = 3)
BEGIN
    PRINT 'Third If Else Block'
END
ELSE IF (1 = 1)      --<-- This is True
BEGIN
    PRINT 'Last Else Block'  --<-- Only this statement will be printed
END


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow