OracleでSQL ServerのIsNull()関数に相当するものは何ですか?


回答:


131

coalesceOracleとSQL Serverの両方でサポートされており、およびと基本的に同じ機能を提供nvlisnullます。(いくつかの重要な違いがありcoalesce、任意の数の引数を取り、最初のnull以外の引数を返すことができます。の戻り値の型isnullは最初の引数の型と一致しcoalesceます。少なくともSQL Serverではには当てはまりません。)


9
+1:COALESCEはANSIであり、Postgres、MySQLでサポートされています...唯一の注意点は、ネイティブ構文ほど高速に実行できるとは限らないことです。
OMGポニー2010

17
+1 for COALESCEには、1つ以上の重要な利点がありNVLます。これは、ショートカット評価を行うのに対し、NVL常に両方のパラメーターを評価します。と比較COALESCE(1,my_expensive_function)してくださいNVL(1,my_expensive_function)
ジェフリーケンプ

このCOALESE()関数はすばらしいものであり、MSDOC> COALESCEで読むことができます。これと同じ構文がOracleでも機能します。データにNULLSではなく空の文字列がある場合は、次のようなものが必要になる可能性がありますCOALESCE(TRIM(Tbl.myField1), TRIM(Tbl.myField2)) AS "myNewField"
SherlockSpreadsheets

108

の代わりにISNULL()、を使用してくださいNVL()

T-SQL:

SELECT ISNULL(SomeNullableField, 'If null, this value') FROM SomeTable

PL / SQL:

SELECT NVL(SomeNullableField, 'If null, this value') FROM SomeTable

2
質問に明確に答えます。
Gary Huckabone 2016年

31

NVL2から他の値を返したい場合も以下のように使用しますfield_to_check

NVL2( field_to_check, value_if_NOT_null, value_if_null )

使用法:ORACLE / PLSQL:NVL2機能


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.