oracleとaccessのsqlの違い

2007年9月12日水曜日

データベース

t f B! P L
sqlの違いがいろいろあって、結構手間取ったので整理。

文字列を整形する

  • oracle  TO_CHAR
  • access  FORMAT

フォーマットについては、ここが参考になった。

■Format関数の書式 -- みんなのAccess備忘録
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' end
switch(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比較

このブログを検索

サイトマップ

  • ()
  • ()
もっと見る

Google検索

マルウェア「Emotet」に感染したくないから、「EmoCheck」と「EmoKill」の使い方、利用方法をまとめてみた!

  はじめに 世間を騒がしている「Emotet」。2014年ごろから確認されているマルウェアだが、流行と鎮静化を繰り返しながら変異を続けており、今もなお大きな影響を及ぼしている。2020年は、多数の企業が被害を受けた年になった。 Emotetに一旦感染するとやっかいだ。そのモジュ...

QooQ