SQL Server IF…ELSE 条件文: T-SQL 選択クエリの例
なぜ条件文が必要なのでしょうか?
SQL サーバーの条件ステートメントは、さまざまな条件に対してさまざまなロジックやアクションを定義するのに役立ちます。 これにより、ステートメント内で定義された条件に基づいてさまざまなアクションを実行できます。 実生活では、他の活動や状況の結果に応じて多くのアクションを実行します。
SQL case ステートメントのリアルタイムの例をいくつか示します。
- もし明日雨が降ったら、私は遠征の計画を立てるつもりです。
- 私の街からの航空券が 400 ドル未満であれば、ヨーロッパで休暇を過ごします。そうでない場合は、近くの観光スポットを選びます。
ここでは、上記のロードトリップのような XNUMX つのアクションが次のとおりであることがわかります。 条件付きで依存する 「明日は雨が降るか降らないか」という別の活動の結果について。
同様に、MS SQL は、T-SQL ステートメントを条件付きで実行する機能も提供します。
SQL Server の IF… Else ステートメント
In MS SQL, もし…そうでなければ の一種で 条件文.
任意の T-SQL ステートメントは、次を使用して条件付きで実行できます。 もし…そうでなければ.
次の図は、SQL サーバーの IF ELSE を説明しています。
- 条件が次のように評価される場合 本当、 次に T-SQL ステートメント、その後に IF SQLサーバーの条件が実行されます。
- 条件が次のように評価される場合 偽 次に T-SQL ステートメント、その後に ELSE キーワードが実行されます。
- 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 サーバーが実行する必要があるステートメント ブロックを識別し、IF…ELSE T-SQL ブロックの一部ではない残りの T-SQL ステートメントから分離するのに役立ちます。
- ELSE はオプションです。
ブール式の数値のみを含む IF…ELSE。
条件: TRUE
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。
条件: TRUE
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 with Begin End
条件: TRUE
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 ステートメント
SQL では、ELSE 部分なしで 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 未満の場合、「あなたは 50 未満です」と出力されます。これらの条件がいずれも当てはまらない場合、コードは「シニア」と出力します。
製品概要
- 変数は、プレースホルダーとして機能するオブジェクトです。
- ステートメントのブロックはキーワード BEGIN で始まり、キーワード END で閉じる必要があります。
- Else は IF… ELSE ステートメントでの使用はオプションです
- SQL IF ELSE 条件を別の IF…ELSE ステートメントにネストすることも可能です。