2010年05月14日

Access での CASE文 SQL


Accessでは CASE が使えません!
CASE って世界標準じゃないの? と思ったりもしますが、Access は違うようです。

Access の場合は、 Switch を使います。


<つかいかた>
CASE x
WHEN a THEN p
WHEN b THEN q
WHEN c THEN r
ELSE y END

というのを Switch で書くとしたら、

Switch(x=a, p, x=b, q, x=c, r, True, y)

となります。

VBAとの互換性のために Switch をつかうのでは? という説もあります。本当のところは知りません。

iif を使うこともできて、

iif(x=a, p, (iif(x=b, q, iif(x=c, r, y))))

とすると、上と同じ結果が返ります。


ヘルプを見ると、参考のところに、Choose という関数が書いてありました。
Choose(index, a, b, c, ...)
index に整数を入れると、index = 1 なら a が、index = 2 なら b が返るそうです。
整数でない場合は、一番近い整数に丸められる。1未満の整数の場合は Null が返る。



posted by けんじ at 07:53 | Comment(0) | TrackBack(0) | パソコンいろいろ
この記事へのコメント
コメントを書く
お名前: [必須入力]

ホームページアドレス:

コメント: [必須入力]

※半角英数字のみのコメントは投稿できません。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/149827063
※ブログオーナーが承認したトラックバックのみ表示されます。
 スパム対策のため、承認制にしました。ご了承ください。
※半角英数字のみのトラックバックは受信されません。

この記事へのトラックバック