OracleからMySQLへの変換。
プログラムソース中で使うクエリで、
OracleのDECODEは、MySQLでは「IF」または「CASE」で代用できる。
OracleのDECODEは、
select DECODE(フィールド名, 大人だったら, ビールにする, 子供だったら, コーラにする, それ以外の値はカルピスにする)
みたく書いて条件分岐に使う。
- 大人だったら, ビールにする, それ以外はコーラ
みたいにしたいとき
Oracleで、
select DECODE(フィールド名, 大人, ビール, コーラ)
をMySQL用に書き換えるときは、
select IF(フィールド名=大人, ビール, コーラ)
と書く。
IFはこれだけだったらExcel関数のIFみたいですなー。
比較演算子(というのか?)の部分は、JSやPHPで使うような「==」ではだめ。「=」とか「>」とかが使える。
MySQLのcaseの文法は以下の様な感じ。
SELECT CASE フィールド
WHEN 大人 THEN ビール
ELSE コーラ
END;
参考にしたサイト
コメント