SQL Null auf Null gesetzt für das hinzufügen
Ich habe eine SQL-Abfrage (MS-Access), und ich brauche, um hinzuzufügen zwei Spalten, die null sein darf. Zum Beispiel:
SELECT Column1, Column2, Column3+Column4 AS [Added Values]
FROM Table
wo Column3 oder Column4 null sein darf. In diesem Fall möchte ich null werden als null (so 4 + null = 4, null + null = 0
).
Irgendwelche Vorschläge, wie dies zu erreichen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Seit ISNULL in Access wird eine Boolesche Funktion (ein parameter), verwenden Sie es wie diese:
expr IS NULL
ist besser alsISNULL(expr)
. Sie finden den link auf meine Antwort stackoverflow.com/a/5461079/78522Laut Allen Browne, der Schnellste Weg ist die Verwendung
IIF(Column3 is Null; 0; Column3)
weil beideNZ()
undISNULL()
sind VBA-Funktionen und aufrufen von VBA-Funktionen verlangsamt sich der JET-Abfragen.Ich würde auch hinzufügen, dass, wenn Sie arbeiten mit verknüpften SQL Server-oder Oracle-Tabellen, die IIF-syntax auch die Abfrage auf dem server ausgeführt, was nicht der Fall ist, wenn Sie die Verwendung von VBA-Funktionen.
Sogar sauberer wäre die nz-Funktion
Verwenden Sie die ISNULL Ersatz-Befehl:
Die Nz () - Funktion von VBA kann verwendet werden, in Ihrer MS Access-Abfrage.
Dieser Funktion ersetzen Sie eine NULL für den Wert in den angegebenen parameter.
In der Tabelle definition, Satz den Standard für Column3 und Column4 auf null, also wenn ein Datensatz Hinzugefügt wird, für die kein Wert in diesen Spalten den Wert in der Spalte null sein. Sie würde sich deshalb nie wieder sorgen zu machen, die null-Werte in Abfragen.
Verwenden Sie COALESCE.