SQL Server 2008 - ein Wert Festgelegt, wenn die Spalte null ist
Ich mache eine SELECT-Anweisung in einer SQL Server 2008-Datenbank.
SELECT Name, DOB, Address1, Address2, City, State, Zip
FROM Users
Jedoch, wenn einer der oben genannten Spalten passieren, leer zu sein, für eine bestimmte Zeile, ich möchte den Wert NA
in der Spalte.
Normalerweise würde dies zurück:
SMITH^JOHN, 1/1/1980, 5140 N 1ST ST, NULL, NOWHERE, WA, 98221
DOE^JANE, 5/5/1970, NULL, NULL, NULL, NULL, NULL
Was ich will zurückgegeben werden:
SMITH^JOHN, 1/1/1980, 5140 N 1ST ST, NA, NOWHERE, WA, 98221
DOE^JANE, 5/5/1970, NA, NA, NA, NA, NA
Aber ich will nicht, um tatsächlich die Datenbank aktualisieren. Ich will nur die SELECT
- Anweisung zur Rückgabe dieser statische Wert, wenn das Resultat ist NULL
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wollen Sie das COALESCE Funktion.
Versuchen:
Als andere haben darauf hingewiesen, COALESCE ist auch eine option:
gibt das erste nicht-null-Wert
Gibt es einen ausführlichen Artikel beschreibt die Unterschiede hier:
http://databases.aspfaq.com/database/coalesce-vs-isnull-sql.html
In sql server 2008 gibt es zwei Funktionen zu ersetzen NULL Werte mit anderen Werten
1. ISNULL Funktion benötigt zwei Parameter: den Wert prüfen und der Ersatz für null-Werte
ISNULL(value,replacement)
2.COALESCE Funktion funktioniert etwas anders VERSCHMELZEN wird eine beliebige Anzahl von Parametern und die Rückgabe des ersten nicht-NULL Wert , ich bevorzuge VERBINDEN sich über ISNULL 'die Ursache entspricht den ANSI-standarts, während ISNULL funktioniert nicht.
COALESCE(Wert1,Wert1,Wert3, wertn,Ersatz)
Ich hoffe, dass diese Arbeit für Sie.
Verwenden
isnull
:Können Sie auch
coalesce
, die genau so ist, wieisnull
außer, dass es können mehr als zwei Argumente. Die Argumente werden geprüft, von Links nach rechts und die erste nicht-null-Wert zurückgegeben. Werte müssen vom gleichen Typ sein.Umgang mit NULL In SQL Server
Was NULL Ist ?
Umgang mit Null In SQL Server-Beispiele