TOP > if文みたいなもん

if文みたいなもん

生きとし生けるものは、絶えず「判断」をしています。

今日はあの娘とデートだぜ!やったー!
でも、サイフの中身は寂しいなぁ。どうしようかなぁ。
よし!あの娘におねだりだ!!

そんな時もあっていいでしょう。

 

それはさておき、
プログラムでは条件分岐が欠かせません。if文ですね。お世話になっております。

こんな感じです。

条件がこうだったら、これをやりまーす。 そうじゃなくて、あーだったら、あれをやりまーす。

プログラムで書くとこんな感じ.....
if 条件 = こう then
  これ
else
  あれ
endif

select文を投げて、返ってきたデータをみてプログラム中で判断してもいいのですが
簡単な判断ならselect文でやってしまいましょう。

decode関数

こんな感じ

select decode(K.性別,'0','男','女) from 社員マスタ K

列「性別」が0なら、「男」、それ以外なら「女」を返します。
decodeは最大256のリストを評価出来ます。

select decode(順番,1,'1等賞!',2,'2等賞!',3,'3等賞!','どんぐりの背比べ') from 徒競走;

decode関数で条件となる列を条件式で表すのは限界があるんで
ぼくは簡単な判断以外ではdecodeを使ってません。

case式 (8.16以降)

ボクはあんまり書き慣れていないのだけど、caseが好きさ。
なんか簡単っぽいよ。
こんな感じです

case 列名
   when 列の値 then 返す値
   when 列の値 then 返す値
    ・・・・
    else デフォルト
end

case式も when -- then -- は128組が上限。

select case 順番
    when 1 then '1等賞'
    when 2 then '2等賞'
    when 3 then '3等賞'
    else 'どんぐりの背比べ'
end
from 徒競走;

 

等価比較だけではなく、大小比較もOK 。

select case
    when 順番 < 11 then '入賞'
    when 順番 between 11 and 20 then 'がんばりました'
    else 'どんぐりの背比べ'
end
from 徒競走;

 

 

 

思い出したかい?ボーイ? それとも知らなかったかい?