OracleのNVL関数に相当するPostgreSQLとは何ですか?


ベストアンサー

OracleのNVL関数を使用すると、結果のnullを文字列に置き換えることができます。クエリ。null値を取り除くのに役立ちます。

構文は次のとおりです。

NVL(exp\_to\_check, replacement\_value)

If exp\_to\_checkがnullの場合、NLV()はreplacement\_valueを返します。exp\_to\_checkがnullでない場合、 NLV()はexp\_to\_checkを返します。

完全に一致するわけではありませんが、PostgreSQLのCOALESCE()関数は非常によく似た機能を提供します。無制限の数の引数を受け入れ、 nullではない最初の引数を返します。すべての引数がnullの場合、COALESCE関数はnullを返します。構文は次のとおりです。

COALESCE (argument\_1, argument\_2, …)

Navicat for PostgreSQL データベース開発クライアントを使用して説明する基本的な例をいくつか示します。

実際のクエリでのCOALESCE()の使用

Sakilaサンプルデータベースを使用したより現実的な例を次に示します。

アドレステーブルには、addressフィールドとaddress2フィールドが含まれています。後者はnullの場合があります。 COALESCE()関数を使用して、これらを「N / A」の値に置き換えることができます。

Navicatクエリエディターが表示し、クエリに正しい構文を挿入できるのが気に入っています。

完全なクエリと結果は次のとおりです。

nulladdress2値が変換されていることがわかります。

よろしくお願いします!

アダム

回答

COALESCE

もちろん、NVLは短い名前ですが、わかりますか?

  • NVLの意味を誰も理解していません。初心者に説明するのは難しいです。
  • NVLは2つの引数しか取りませんが、COALESCEは任意の数を取ります。
  • COALESCEはANSI標準SQLの一部です。を含むすべてのSQLデータベースがこれをサポートしています Oracle。OracleのみがNVLをサポートしています(明らかにInformixもサポートしています。コメントを参照してください)。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です