In SQL Server können wir eingeben, IsNull()
um festzustellen, ob ein Feld null ist. Gibt es eine äquivalente Funktion in PL / SQL?
sql-server
oracle
tsql
plsql
Goran
quelle
quelle
COALESCE
ist ANSI, unterstützt von Postgres, MySQL ... Die einzige Einschränkung ist, dass es nicht unbedingt so schnell wie die native Syntax ist.COALESCE
, was einen wichtigen Vorteil gegenüber hatNVL
: Es führt eine Verknüpfungsbewertung durch, währendNVL
immer beide Parameter bewertet werden. VergleicheCOALESCE(1,my_expensive_function)
mitNVL(1,my_expensive_function)
.COALESE()
Funktion ist großartig und Sie können sie unter MSDOC> COALESCE nachlesen - dieselbe Syntax funktioniert auch unter Oracle. Wenn Ihre Daten leere Zeichenfolgen anstelle von NULL enthalten, benötigen Sie möglicherweise Folgendes :COALESCE(TRIM(Tbl.myField1), TRIM(Tbl.myField2)) AS "myNewField"
.ISNULL()
Verwenden Sie stattdessenNVL()
.T-SQL:
PL / SQL:
quelle
Verwenden Sie auch
NVL2
wie folgt, wenn Sie einen anderen Wert von Folgendem zurückgeben möchtenfield_to_check
:Verwendung: ORACLE / PLSQL: NVL2-FUNKTION
quelle
Sie können die Bedingung verwenden
if x is not null then...
. Es ist keine Funktion. Es gibt auch dieNVL()
Funktion, ein gutes Beispiel für die Verwendung hier: NVL-Funktionsreferenz .quelle