MySQLにおけるNVL関数の代替手段
いや、実はこれってすでに調べてあるし記録してあるんだけどね。
ref)PostgreSQLにおけるNVL関数の代替手段
こちらと内容重複ありますが、ご容赦。
ただ上記エントリーはタイトルが"PostgreSQLにおける"となってたんで、あらためてMySQLについても別エントリーとして検索性をあげておこう、という主旨である。
NVL関数というものを持っているDBMSがいくつかある。
例えばOracle、例えばInformix。
しかしMySQLにはNVL関数がない。そこで代わりに登場するのがIFNULL関数である。
そもそもNVL関数とはなんじゃ?というと
「抽出した値がNULLの場合、代替値を返す」
ものとなる。
SELECT nvl(order_date," ") FROM sales;
みたいな感じで、NULLが返ってきたら代わりにスペースを出力する、という動きをする。
MySQLにおけるNVL相当の関数は先ほども書いたIfNull。
SELECT IfNull(order_date," ") FROM sales;
これにて同一挙動をする。
なお、MySQLにおいてもPostgreSQLなどで利用できるCOALESCE関数は有効であり、If else的に使いたいのであれば(NVL入れ子したいのであれば)COALESCEを使ったほうがいいだろう。
| 固定リンク
この記事へのコメントは終了しました。
コメント