sqlの違いがいろいろあって、結構手間取ったので整理。
文字列を整形する
- oracle TO_CHAR
- access FORMAT
フォーマットについては、ここが参考になった。
■Format関数の書式 -- みんなのAccess備忘録
http://www.accessclub.jp/bibouroku/016.html(こちらは閉鎖されている)
http://www.accessclub.jp/bibouroku/016.html(こちらは閉鎖されている)
CASE文による条件分岐
- oracle CASE
- access SWITCH
CASE文が好きで多用しているので、置き換えるのに苦労した。
SWITCHだと、oracleのDECODE文のような感じだな。
case when a=1 then 'abc' when a=2 then 'def else 'ghi' endswitch(a=1, 'abc', a=2, 'def', true, 'ghi')
NULLかどうかの判定
- oracle NVL(hoge, 0)
- access IIf(IsNull(hoge), 0, hoge)
nullのデータが存在したときに、nullのイレギュラー性を吸収する意味で
これまたよく使っていたNVL。いざ使えないとなると、不便だね~。
文字列の取り出し
- oracle SUBSTR
- access MID
これ、MySQLなら「SUBSTRING」になるし、バラバラやな。
型違いの際のデータ比較
あと、oracleなら、where句などでnumber型のデータの比較を
hoge = '1'
のように文字扱いしても(良くは無いけど)ちゃんと動いてくれるけど、
accessからは怒られてしまう。SQLの方言の強さと正確な条件解析の挙動が
とてもアンバランスに感じる今日この頃。
SQLの比較については、ここもよくまとまっている。
■逆引きSQL比較
0 件のコメント:
コメントを投稿