« OSS-DB試験Gold無料対策講座 | トップページ | 最近突然パスワードのオートコンプリートが使えるサイトが増えた »

2014.08.27

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を使ったほうがいいだろう。

|

« OSS-DB試験Gold無料対策講座 | トップページ | 最近突然パスワードのオートコンプリートが使えるサイトが増えた »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: MySQLにおけるNVL関数の代替手段:

« OSS-DB試験Gold無料対策講座 | トップページ | 最近突然パスワードのオートコンプリートが使えるサイトが増えた »