IF文による条件分岐でSQLを動的に変化させるさらっと覚えるSQL&T-SQL入門(10)(3/3 ページ)

» 2007年12月04日 00時00分 公開
[石橋潤一株式会社システムインテグレータ]
前のページへ 1|2|3       

条件式でのSELECT文の利用

 IF文の中で指定する条件式に対し、SELECT文の結果を利用できます。ストアドプロシージャを利用したプログラムを作成する場合、データベースの値を利用した条件分岐を行いたい場合が多々発生しますが、このような場合にうまく利用するとよいでしょう。

 それではサンプルを見ながらその動作を確認しましょう。

CREATE PROCEDURE uspSamle4
  @Color varchar(50)
AS
BEGIN
 IF @Color IS NULL
  BEGIN

    PRINT N'パラメータがNULLです'

  END
 ELSE IF (SELECT COUNT(*)
            FROM Production.Product WHERE Color = @Color ) = 0

  BEGIN

    PRINT N'データが存在しません'

  END
 ELSE
  BEGIN

    SELECT ProductID, Name, Color
      FROM Production.Product
      WHERE Color = @Color

    PRINT N'パラメータがNULL以外です'

  END
END

 このサンプルでは、IF構文を利用した2つ目の条件式としてSELECT文を指定しています。条件式に利用したSELECT文は、与えられたパラメータによってCOUNT関数を発行し、対象データ件数を調べています。条件式でSELECT文を利用する場合、このようなデータ比較を行うため、複数の列を返すSELECT文は利用できません。

まとめ

 今回は条件式によるストアドプロシージャの制御を取り上げました。ストアドプロシージャを利用することによって、さまざまな処理を行うことが実感できたのではないでしょうか。


 次回はストアドプロシージャで重要な機能である「カーソル」を取り上げます。お楽しみに!(次回へ続く)

筆者プロフィール

石橋潤一
株式会社システムインテグレータ勤務。Web+DBの業務アプリをメインに開発に携わる。@IT連載記事「SQL Server 2005を使いこなそう」「SQL Server 2005 CTPレビュー」執筆のほか、著書に『DBマガジン別冊 SQL Server 2005徹底活用ガイド』(翔泳社刊/共著)、『ASP.NET+SQL Server ゼロからはじめるWebアプリケーション』(ソフトバンクパブリッシング刊/共著)。



前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。