SQL Server
 Computer >> コンピューター >  >> プログラミング >> SQL Server

SQL ServerのIF...ELSE文とは?基本構文と実践例をわかりやすく解説

他のプログラミング言語と同様に、SQL Serverでも条件分岐を行うためのIF...ELSEコマンドが用意されています。本記事では、IF...ELSE文の構文の使い方を、わかりやすい具体例とともに詳しく解説します。

概要

SQL ServerにおけるIF...ELSE文は、条件に応じて処理を分岐させるために使用されるステートメントです。条件がTRUE(真)と評価された場合は一方的な処理を実行し、FALSE(偽)と評価された場合には別の処理を実行します。

IF...ELSE文の構文

SQL ServerでIF...ELSEによる分岐処理を行うには、以下の構文に従って記述します。

IF 条件式
{ 条件がTRUEのときに実行されるステートメント }

[ELSE
{ 条件がFALSEのときに実行されるステートメント }]

注意点:

  1. ELSE句は必須ではありません。ELSE句を使うのは、IF条件がFALSEと評価された場合(つまり条件を満たさなかった場合)に、別の一連のステートメントを実行したいときです。
  2. IF...ELSE文には「ELSE IF」は存在しません。複数の条件分岐を実現したい場合は、IF...ELSE文を入れ子(ネスト)構造にして記述する必要があります。

IF...ELSE文のフローチャート

IF...ELSE文の処理の流れは、下図のようなフローチャートで表されます。条件式の評価結果に応じて、TRUE側の処理かFALSE側の処理へと分岐します。

SQL ServerのIF...ELSE文とは?基本構文と実践例をわかりやすく解説

例1:条件付きのIF...ELSE文

DECLARE @nhanvien_salary INT;
SET @nhanvien_salary = 15000000;

IF @nhanvien_salary > 10000000
    PRINT 'ブチョウ';
ELSE
    PRINT 'センモンショク';

GO

このIF...ELSE文では、変数@nhanvien_salary(従業員の給与)が10,000,000より大きい場合は「ブチョウ」が出力され、それ以外の場合は「センモンショク」が出力されます。この例では15,000,000が代入されているため、条件はTRUEとなり「ブチョウ」が表示されます。

例2:ELSE句なしのIF文

ELSE句は必須ではないため、状況によっては省略することが可能です。

DECLARE @nhanvien_salary INT;
SET @nhanvien_salary = 15000000;

IF @nhanvien_salary < 10000000
    PRINT 'センモンショク';

GO

この例では、変数@nhanvien_salaryの値が10,000,000未満である場合にのみ結果が出力されます。条件を満たさない場合は何も表示されず、そのままバッチの処理が終了します。ここでは15,000,000が代入されているため、条件はFALSEとなり、画面には何も出力されません。

例3:入れ子(ネスト)になったIF...ELSE文

SQL Serverでは、他の言語のように「ELSE IF」と簡潔に書くことができません。そのため、3つ以上の条件分岐を実現するには、IF...ELSE文を入れ子にして記述する必要があります。

DECLARE @nhanvien_salary INT;
SET @nhanvien_salary = 15000000;

IF @nhanvien_salary > 12000000
    PRINT 'シャチョウ';
ELSE
BEGIN
    IF @nhanvien_salary > 10000000
        PRINT 'ブチョウ';
    ELSE
        PRINT 'センモンショク';
END;

GO

この例の処理の流れは以下のとおりです。まず、給与が12,000,000より大きい場合は「シャチョウ」が出力されます。この条件を満たさなかった場合は、内側のIF文へ処理が移り、給与が10,000,000より大きければ「ブチョウ」、それ以外の場合は「センモンショク」が出力されます。今回の例では15,000,000が代入されているため、最初の条件がTRUEとなり「シャチョウ」が表示されます。

このように、BEGIN...ENDブロックと組み合わせてIF...ELSE文をネストすることで、SQL Serverでも柔軟な多段階の条件分岐処理を実現できます。

  1. SQL ServerのIF...ELSE文とは?基本構文と実践例をわかりやすく解説

    他のプログラミング言語と同様に、SQL Serverでも条件分岐を行うためのIF...ELSEコマンドが用意されています。本記事では、IF...ELSE文の構文の使い方を、わかりやすい具体例とともに詳しく解説します。 概要 SQL ServerにおけるIF...ELSE文は、条件に応じて処理を分岐させるために使用されるステートメントです。条件がTRUE(真)と評価された場合は一方的な処理を実行し、FALSE(偽)と評価された場合には別の処理を実行します。 IF...ELSE文の構文 SQL ServerでIF...ELSEによる分岐処理を行うには、以下の構文に従って記述します。 IF 条件式{

  2. MS SQL Serverとは?特徴・主な用途・バージョン履歴・インスタンスの基インスタンスの基礎を徹底解説

    SQL Server(MS SQL Server)とは? SQL Serverは、Microsoftが開発したリレーショナルデータベース管理システム(RDBMS)です。従来のRDBMSの枠組みにとどまらず、オブジェクト指向の概念も取り入れたORDBMS(オブジェクトリレーショナルデータベース管理システム)としての側面も併せ持っています。主な特徴は以下の通りです。 Microsoftが開発したRDBMSベースのデータベースソフトウェアである ORDBMS(オブジェクトリレーショナルデータベース管理システム)としても機能する 特定のプラットフォームに依存しない独立した環境で動作する コマンドライ