SQLSERVERで条件演算子(三項演算子)を使う方法

SQLSERVER
 

三項演算子とはIF分岐で値を代入する処理を1行にまとめて記述することの出来る記法です。

他の言語のように記述出来ないかと思い調べました。

三項演算子の使い方

IIF(条件式, 真の返り値, 偽の返り値)

条件式を評価し、真ならば第二引数、偽ならば第三引数の値を返り値として返すコードです。

使用例

例えばDB内のテーブルの値を基に結果を出力するソースを記載しています。

・テーブルの中には「名前、年齢」が格納されている。

・年齢を「20歳以上と未満」評価し、それに応じて出力メッセージを変える処理を記載しています。

-- 変数の定義
DECLARE @RESULT                   nvarchar(10);
DECLARE @TT_NAME               nvarchar(10);
DECLARE @TT_AGE                  int;

-- カーソルの定義
DECLARE @LIST CURSOR FOR 
    SELECT name, gender FROM TT;

-- カーソルを開く
OPEN @LIST;
FETCH NEXT FROM @LIST
INTO @TT_NAME, @TT_GENDER;

WHILE @@FETCH_STATUS = 0
BEGIN
    -- 例えばお酒提供の可否を@RESULTに格納するコード
    -- TTテーブルから受け取った年齢が
    -- 20歳以上ならOK
    -- それ以外ならNGを代入する
    SET @RESULT = IIF(@TT_NAME >= 20, 'OK', 'NG');
    PRINT @TT_NAME + 'さんはお酒提供' + @RESULT + 'です';
END

最近SQLSERVERを使用しているのですが、

DECLAREとSETの二重書きが少しめんどくさいです^^;

以上です

コメント

タイトルとURLをコピーしました