元々OracleでSQLをかいていたが、プロジェクトが変わってMySQLで書くことになったので
SQLの書き方違うモノをまとめた。
今後随時更新をしていこうと思う。
予約語が違うモノ
Oracle | MySQL | アンカーリンク |
---|---|---|
NVL | IFNULL | NVL |
TO_CHAR | 日付:DATE_FORMAT 数値:FORMAT |
TO_CHAR, TO_NUMBER |
TO_CHAR | 日付:DATE_FORMAT 数値:FORMAT |
TO_CHAR, TO_NUMBER |
decode | 存在しない。 |
予約語が一緒なもの
Oracle | MySQL |
---|---|
COALESQUE | COALESQUE |
INSTR | INSTR |
NVL
基本的にデータのNULLを置き換えるために使用する。
例えば、NULLであれば「0」を出すようにする…など。
NVLはMySQLに存在しない、代わりにIfNull
が存在する。
COALESQUEという関数も存在し、それも同様に使うことができる。
これはOracleと一緒の感覚で使うことができる。
select ifnull(column,0) from table
TO_CHAR, TO_NUMBER
日付型などを文字列で特定書式で表示する場合…などに使います。
MySQLでは、日付の場合はDATE_FORMAT関数を使います。
しかし、Oracleの書式指定とは全く別物なので、フォーマット指定方法は調べてから書いたほうがいいと思います。
数値の場合は、FORMAT関数を使います。