IFのあとに条件を指定し、条件一致時に実行したいコードを「BEGIN - END」ブロックで囲みます。
条件分岐方法
-
"IF"
IF 条件 BEGIN 条件が一致した場合に実行されるコード END
-
"IF" - "ELSE"
IF 条件 BEGIN 条件が一致した場合に実行されるコード END ELSE BEGIN 条件が一致しなかった場合に実行されるコード END
-
"IF" - "ELSE IF"
IF 条件1 BEGIN 条件1が一致した場合に実行されるコード END ELSE IF 条件2 BEGIN 条件2が一致した場合に実行されるコード END
-
"IF" - "ELSE IF" - "ELSE"
IF 条件1 BEGIN 条件1が一致した場合に実行されるコード END ELSE IF 条件2 BEGIN 条件2が一致した場合に実行されるコード END ELSE BEGIN 条件が一致しなかった場合に実行されるコード END
条件の指定例
-
変数 の判定
IF @value = 1 BEGIN 変数 value が 1 のとき に実行されるコード END
IF @value != 1 BEGIN 変数 value が 1以外のとき に実行されるコード END
IF @value > 1 BEGIN 変数 value が 2 ~ のとき に実行されるコード END
IF @value >= 1 BEGIN 変数 value が 1 ~ のとき に実行されるコード END
-
NULL の判定
IF @value IS NULL BEGIN 変数 value が NULL のとき に実行されるコード END
IF @value IS NOT NULL BEGIN 変数 value が NULLではないとき に実行されるコード END
-
レコード件数 の判定
IF (SELECT COUNT(*) FROM テーブル名 WHERE 条件) = 0 BEGIN 条件に一致するレコードがない時 に実行されるコード END
"BEGIN - END" ブロック の省略
コードが1行のみの場合は "BEGIN - END" ブロックを省略できます。バグの元になるため、お勧めはしません。IF 条件
条件が一致した場合に実行されるコード
ELSE
条件が一致しなかった場合に実行されるコード
常に実行されるコード
注意点
"BEGIN - END" 内は必ず構文が必要です。 次のコードはエラーが発生します。IF 条件
BEGIN
--ここは何もしない
**エラー'end'付近に不適切な構文があります**
END
ELSE
BEGIN
--条件が一致しないとき、変数に 1 を代入
SET @i = 1
END
IF NOT(条件)
BEGIN
SET @i = 1
END
類似記事
検証環境
- Microsoft SQL Server Express Edition (64-bit) プラットフォーム:NT x64 バージョン:10.0.2531.0
- Microsoft Windows 7 Professional Service Pack 1 (Microsoft Windows NT 6.1 (7601))