サーチ…


単一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ブロック内のコードが実行されます。この特定の例では、第1および第3の表現は真であり、それらの印刷命令だけが実行される。

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ステートメント

1つのIF..ELSEステートメントでIF式で式がTrueと評価された場合、コントロールは最初のBEGIN..ENDブロックに入り、そのブロック内のコードのみが実行されます。他のブロックは単に無視されます。

一方、式がFalse評価された場合、 ELSE BEGIN..ENDブロックが実行され、コントロールは最初のBEGIN..ENDブロックに入ることはありません。

下の例では、式はfalseと評価され、Elseブロックは'First expression was not true'文字列を出力して実行され'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最終ELSEステートメント

複数の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文を使用して処理されます。

この例では、すべての式が上から下に評価されます。式が真と評価されるとすぐに、そのブロック内のコードが実行されます。式が真に評価されない場合、何も実行されません。

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