MSSQL Server にて ISNULL と COALESCE の違い

MSSQL Server にて ISNULL と COALESCE の違い

ISNULLは2引数まで、COALESCE は3引数以上も大丈夫というのが一般的な違い。

返り値の型について以下のような違いがある。

  • ISNULL は型が違う場合第一引数の型に変換して返そうとする。
  • COALESCE は型が違う場合「優先順位の最も高いデータ型を返します」(BooksOnLine より)

COALESCE を ISNULLISNULL を COALESCE に変更して、
第一引数に nvarchar のフィールド, 第二引数に 0 を渡してエラーが発生するというのをくらったのだった。
本来あるべき姿ではなかったのは確かだが、動いていたものが動かなくなって大変。

しかし 「優先順位の最も高いデータ型」って何やねん。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。