• ベストアンサー

CASEとIIFについて

SQLServer2005(Express)を使用しています。 DB内にビューを作成する時にCASE式を使用していますが 同じことがIIF関数でもできそうな気がします。 (問い合わせの内容が単純なので、どちらでも良いかな?と思っています) CASE式とIIF関数で処理速度に違いはあるのでしょうか? また、CASE/IIFのどちらを使用するかの決め手となるもの(実装時の判断基準)としてどんなものがあるのでしょうか? 初心者で申し訳ありません。参考になる資料などでも結構ですので教えていただければ助かります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

速度の違いはどの程度あるかわかりません。 ■CASE 条件が複数書ける。 CASE TESTKBN WHEN 0 THEN '不明' WHEN 1 THEN '有効' WHEN 2 THEN '無効' ELSE '' END ■IIF 1つの条件に対して真偽を問う物。 つまり、例に挙げたCASEをIIFで書く場合はこうなります。 IIF(TESTKBN = 0,'不明',IIF(TESTKBN = 1,'有効',IIF(TESTKBN = 2,'無効',''))) どちらが見やすいか。 またIIFの場合は2だと最低3回は判定が入ります。 CASEの判定の仕組みがわかりませんので速度的に違うかは判断できません。

TM03hsai
質問者

お礼

ありがとうございました。

その他の回答 (1)

  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.2

そもそもSQL ServerにはIIF関数がありませんが。。 それを使おうとしているということは、Accessとのリンクなんでしょうか。逆にAccessではCASEが使えません。 したがって、質問自体が成り立たないのでは。

TM03hsai
質問者

お礼

ありがとうございました

関連するQ&A