SQLite-Äquivalent zu ISNULL(), NVL(), IFNULL() oder COALESCE()
-
Abrufen von Datensätzen mit
NULL
-Werten in der SQLite-Datenbank -
Verwenden Sie
THEN
undELSE
, um in der SQLite-Datenbank nachNULL
-Werten zu suchen -
Verwenden Sie die Funktion
COALESCE()
in der SQLite-Datenbank -
Verwenden Sie die Funktion
NVL()
in der SQLite-Datenbank -
Unterschied zwischen den Funktionen
COALESCE()
undifnull()
-
Unterschied zwischen den Funktionen
COALESCE()
undisnull()
SQLite wird zum Erstellen, Lesen, Aktualisieren und Löschen von Datensätzen aus der Datenbank verwendet. Die Datenbank enthält verschiedene Tabellen zur Pflege der Daten.
Jede Tabelle besteht aus Zeilen und Spalten, die den Datensatz tragen. Diese Datensätze haben oft leere oder Nullwerte, die Probleme oder Fehler beim Abrufen der Daten verursachen.
Abrufen von Datensätzen mit NULL
-Werten in der SQLite-Datenbank
Um die Datensätze aus der SQLite-Datenbank abzurufen, verwenden wir die SELECT
-Klausel in der SQLite-Anweisung. Die SELECT
-Anweisung ruft auch die NULL
-Werte ab und ignoriert sie und ruft den Datensatz nur mit dem Wert ab.
SELECT field
FROM table
WHERE field = aCondition
Ein Problem tritt auf, wenn leere Werte in der Tabelle vorhanden sind. Die SELECT
-Anweisungen benötigen die NULL
-Prüfung, um die leeren Werte aufzuzeichnen oder mit einem bestimmten Text zu füllen, um die Datensätze mit leeren Werten aufzunehmen.
SELECT field, [isnull](field, '')
FROM table
WHERE field = aCondition
In der obigen Anweisung können die NULL
-Werte die Funktion isnull()
möglicherweise nicht erkennen. Es gibt eine ähnliche Funktion wie die Funktion isnull()
, die Funktion ifnull()
, um dieses Problem zu lösen.
Die vollständige Syntax der Funktion ifnull()
lautet wie folgt.
Syntax der Funktion ifnull()
:
ifnull(column, alternateValue)
Parameter:
column |
Die Zielspalte in der SQLite-Datenbank. |
alternateValue |
Der ausgewählte Wert, wenn der Rückgabewert null oder leer ist. |
In den folgenden Anweisungen verwenden wir die Funktion ifnull()
mit der Anweisung SELECT
. Die erste Anweisung entfernt alle NULL
-Werte aus dem Datensatz und ersetzt sie durch einen leeren String.
Sie können einen beliebigen Wert als Ersatz für die NULL
-Werte in den Datenbankeinträgen hinzufügen. Dies kann in der zweiten Anweisung gezeigt werden, wo ein NULL
-Wert durch einen This is a NULL
-String-Wert in der SQLite-Datenbank ersetzt wird.
Die Funktion ifnull()
nimmt genau die beiden Argumente und gibt den ersten nicht leeren String oder Text zurück oder NULL
, wenn beide bereitgestellten Argumente NULL
sind.
SELECT ifnull(NameofColumn,'')
SELECT ifnull(NULL,'This is a NULL');
Verwenden Sie THEN
und ELSE
, um in der SQLite-Datenbank nach NULL
-Werten zu suchen
Wenn das erste Szenario für Ihre Bedingung ungeeignet ist, können wir alternativ die bedingte Anweisung IS NULL
verwenden, um die leeren Werte in der Tabelle zu überprüfen.
Die folgende SQLite-Anweisung entspricht dem Befehl ISNULL(fieldName, 0)
. Die Klausel IS NULL
gibt alle leeren Werte in der Datenbank zurück.
Wird irgendein Wert gefunden, ersetzt THEN
den Leerwert durch einen 0
-Wert, SONST
wird etwas gefunden (nicht leer), dann bleibt der Wert unverändert.
SELECT fieldName FROM NameOfTable WHERE fieldName IS NULL THEN 0 ELSE fieldName END
Verwenden Sie die Funktion COALESCE()
in der SQLite-Datenbank
Ähnlich wie die Funktion ifnull()
liefert die Funktion COALESCE()
einen alternativen Wert zum Spaltenwert, wobei der angegebene Wert NULL
ist. Um die SQLite-Anweisung zur Überprüfung des Nullwerts mit der Funktion COALESCE()
zu schreiben, schreiben wir die Anweisung für die angegebene Tabelle.
Die Funktion COALESCE()
funktioniert in SQLite Version 3.8.6 und höher.
Ausweis | Menge |
---|---|
1 | 200 |
2 | 13 |
3 | NULL |
4 | 30 |
5 | 512 |
SELECT COALESCE(Quantity, 0) AS Inventory
FROM Product;
Aktualisierte Tabellenausgabe:
Ausweis | Menge |
---|---|
1 | 200 |
2 | 13 |
3 | 0 |
4 | 30 |
5 | 512 |
Verwenden Sie die Funktion NVL()
in der SQLite-Datenbank
Ähnlich wie die Funktion COALESCE()
macht die Funktion NVL()
dasselbe. Es sucht nach leeren Werten in der Datenbank und ersetzt sie durch einen alternativen Wert, wie in der Funktion NVL()
angegeben.
Der Unterschied besteht darin, dass die Funktion isnull()
durch die Funktion NVL()
ersetzt wurde, eine Oracle-Funktion im SQL-Server.
Unterschied zwischen den Funktionen COALESCE()
und ifnull()
Der Hauptunterschied zwischen den Funktionen COALESCE()
und ifnull()
besteht darin, dass die Funktion ifnull()
nur zwei Argumente akzeptiert. Es prüft, ob das erste Argument NULL
ist oder nicht, und wenn es NULL
ist, ersetzt es es durch das zweite Argument.
Umgekehrt nimmt die Funktion COALESCE()
zwei oder mehr Parameter und prüft, ob das erste Argument NULL
ist. Wenn das erste Argument NULL
ist, wird nach dem zweiten gesucht.
Wenn das zweite Argument NULL
ist, überprüft es das nächste Argument, bis es einen nicht leeren Wert findet und ersetzt es durch das erste NULL
-Argument.
SELECT IFNULL('any value', 'extra value');
SELECT IFNULL(NULL,'extra value');
SELECT COALESCE(NULL, 'extra value');
SELECT COALESCE(NULL, 'any value', 'extra value');
SELECT COALESCE(NULL, NULL, NULL, NULL, 'the non-null value');
Ausgang:
any value
extra value
extra value
some value
the non-null value
Unterschied zwischen den Funktionen COALESCE()
und isnull()
Hauptsächlich führen beide Funktionen die gleiche Funktionalität aus, prüfen auf die NULL
-Werte und ersetzen sie durch den angegebenen nicht leeren Wert. Sie unterscheiden sich jedoch in ihrem Verhalten.
- Der Unterschied besteht darin, dass die Funktion
isnull()
nur einmal auswertet, die FunktionCOALESCE()
jedoch mehrfach auswertet. - Ein weiterer Unterschied besteht darin, dass die Funktion
isnull()
bei der Bestimmung des Datentyps den Datentyp des ersten Arguments verwendet, während die FunktionCOALESCE()
die AusdrucksregelCASE
verwendet und den Datentyp mit der höchsten Priorität verwendet . - Der letzte Unterschied besteht darin, dass die Funktion
isnull()
niemals einenNULL
-Wert zurückgibt, und wir gehen immer davon aus, dass das Ergebnis dieser Funktion nicht nullwertig ist. Während die FunktionCOALESCE()
den AusdruckNULL
zurückgeben kann.
Beispiel 1:
CREATE TABLE example
(
column1 INTEGER NULL,
column2 AS COALESCE(column1, 0) PRIMARY KEY,
column3 AS ISNULL(column1, 0)
);
Ausgang:
# the statement fails as the nullability of the COALESCE function evaluates to NULL
Error: PRIMARY KEY cannot accept NULL values
Beispiel 2:
CREATE TABLE example
(
column1 INTEGER NULL,
column2 AS COALESCE(column1, 0),
column3 AS ISNULL(col1umn, 0) PRIMARY KEY
);
Ausgang:
# the above statement works as the nullability of the ISNULL function evaluates as NOT NULL.
No error
Hi, I'm Junaid. I am a freelance software developer and a content writer. For the last 3 years, I have been working and coding with Python. Additionally, I have a huge interest in developing native and hybrid mobile applications.
LinkedIn