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のときに実行されるステートメント }]
注意点:
- ELSE句は必須ではありません。ELSE句を使うのは、IF条件がFALSEと評価された場合(つまり条件を満たさなかった場合)に、別の一連のステートメントを実行したいときです。
- IF...ELSE文には「ELSE IF」は存在しません。複数の条件分岐を実現したい場合は、IF...ELSE文を入れ子(ネスト)構造にして記述する必要があります。
IF...ELSE文のフローチャート
IF...ELSE文の処理の流れは、下図のようなフローチャートで表されます。条件式の評価結果に応じて、TRUE側の処理かFALSE側の処理へと分岐します。

例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でも柔軟な多段階の条件分岐処理を実現できます。
-
SQL ServerのIF...ELSE文とは?基本構文と実践例をわかりやすく解説
他のプログラミング言語と同様に、SQL Serverでも条件分岐を行うためのIF...ELSEコマンドが用意されています。本記事では、IF...ELSE文の構文の使い方を、わかりやすい具体例とともに詳しく解説します。 概要 SQL ServerにおけるIF...ELSE文は、条件に応じて処理を分岐させるために使用されるステートメントです。条件がTRUE(真)と評価された場合は一方的な処理を実行し、FALSE(偽)と評価された場合には別の処理を実行します。 IF...ELSE文の構文 SQL ServerでIF...ELSEによる分岐処理を行うには、以下の構文に従って記述します。 IF 条件式{
-
MS SQL Serverとは?特徴・主な用途・バージョン履歴・インスタンスの基インスタンスの基礎を徹底解説
SQL Server(MS SQL Server)とは? SQL Serverは、Microsoftが開発したリレーショナルデータベース管理システム(RDBMS)です。従来のRDBMSの枠組みにとどまらず、オブジェクト指向の概念も取り入れたORDBMS(オブジェクトリレーショナルデータベース管理システム)としての側面も併せ持っています。主な特徴は以下の通りです。 Microsoftが開発したRDBMSベースのデータベースソフトウェアである ORDBMS(オブジェクトリレーショナルデータベース管理システム)としても機能する 特定のプラットフォームに依存しない独立した環境で動作する コマンドライ