Beste Antwort
Mit der NVL-Funktion von Oracle können Sie null durch eine Zeichenfolge in den Ergebnissen von a ersetzen Abfrage. Dies ist nützlich, um Nullwerte zu entfernen.
Hier ist die Syntax:
NVL(exp\_to\_check, replacement\_value)
If exp\_to\_check
ist null, dann gibt NLV () replacement\_value
zurück. Wenn exp\_to\_check
nicht null ist, dann NLV () gibt die exp\_to\_check
zurück.
Obwohl die COALESCE () -Funktion von PostgreSQL nicht genau übereinstimmt, bietet sie eine sehr ähnliche Funktionalität. Sie akzeptiert eine unbegrenzte Anzahl von Argumenten und Gibt das erste Argument zurück, das nicht null ist. Wenn alle Argumente null sind, gibt die Funktion COALESCE
null zurück. Die Syntax lautet:
COALESCE (argument\_1, argument\_2, …)
Hier sind einige grundlegende Beispiele zur Veranschaulichung anhand meines Navicat für PostgreSQL -Datenbankentwicklungsclients:
Verwenden von COALESCE () in einer realen Abfrage
Hier ist ein realistischeres Beispiel unter Verwendung der Sakila-Beispieldatenbank:
Die Adresstabelle enthält ein Adress- und ein Adress2-Feld. Letzteres kann null sein. Wir können diese mit der Funktion COALESCE () durch den Wert „N / A“ ersetzen.
Ich finde es gut, dass der Navicat Query Editor mich anzeigen und sogar die richtige Syntax in meine Abfragen einfügen kann. P. >
Hier ist die vollständige Abfrage und die Ergebnisse:
Sie können sehen, dass die Nulladresse2-Werte konvertiert wurden.
Mit freundlichen Grüßen!
Adam
Antwort
COALESCE
Sicher, NVL
ist ein kürzerer Name, aber wissen Sie was?
- Niemand versteht, wofür
NVL
steht. Es ist schwer, Noobs zu erklären. -
NVL
akzeptiert nur 2 Argumente, währendCOALESCE
eine beliebige Zahl verwendet -
COALESCE
ist Teil von ANSI-Standard-SQL. Jede SQL-Datenbank unterstützt dies, einschließlich Oracle. Nur Oracle unterstütztNVL
(und anscheinend auch Informix; siehe Kommentare).