Was ist das Oracle-Äquivalent zur IsNull () - Funktion von SQL Server?


Antworten:


131

coalescewird sowohl in Oracle als auch in SQL Server unterstützt und hat im Wesentlichen dieselbe Funktion wie nvlund isnull. (Es gibt einige wichtige Unterschiede, coalescedie eine beliebige Anzahl von Argumenten annehmen können und das erste Nicht-Null-Argument zurückgeben. Der Rückgabetyp für isnullstimmt mit dem Typ des ersten Arguments überein, der coalescezumindest unter SQL Server nicht zutrifft .)


9
+1: COALESCEist ANSI, unterstützt von Postgres, MySQL ... Die einzige Einschränkung ist, dass es nicht unbedingt so schnell wie die native Syntax ist.
OMG Ponys

17
+1 für COALESCE, was einen wichtigen Vorteil gegenüber hat NVL: Es führt eine Verknüpfungsbewertung durch, während NVLimmer beide Parameter bewertet werden. Vergleiche COALESCE(1,my_expensive_function)mit NVL(1,my_expensive_function).
Jeffrey Kemp

Diese 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".
SherlockSpreadsheets

108

ISNULL()Verwenden Sie stattdessen NVL().

T-SQL:

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

PL / SQL:

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

2
Beantwortet die Frage explizit.
Gary Huckabone

31

Verwenden Sie auch NVL2wie folgt, wenn Sie einen anderen Wert von Folgendem zurückgeben möchten field_to_check:

NVL2( field_to_check, value_if_NOT_null, value_if_null )

Verwendung: ORACLE / PLSQL: NVL2-FUNKTION


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.