Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
NULLIF-Funktion
Syntax
Der NULLIF-Ausdruck vergleicht zwei Argumente und gibt null zurück, wenn die Argumente gleich sind. Wenn sie nicht gleich sind, wird das erste Argument zurückgegeben. Dieser Ausdruck ist die Umkehrung des NVL- oder COALESCE-Ausdrucks.
NULLIF ( expression1, expression2 )
Argumente
- expression1, expression2
-
Die Zielspalten oder -ausdrücke, die verglichen werden. Der Rückgabetyp ist mit dem Typ des ersten Ausdrucks identisch. Der Standardspaltenname des NULLIF-Ergebnisses ist der Spaltenname des ersten Ausdrucks.
Beispiele
Im folgenden Beispiel gibt die Abfrage die Zeichenfolge first
zurück, da die Argumente nicht identisch sind.
SELECT NULLIF('first', 'second');
case ------- first
Im folgenden Beispiel gibt die Abfrage NULL
zurück, da die Argumente des Zeichenfolgeliterals identisch sind.
SELECT NULLIF('first', 'first');
case ------- NULL
Im folgenden Beispiel gibt die Abfrage 1
zurück, da die Ganzzahlargumente nicht identisch sind.
SELECT NULLIF(1, 2);
case ------- 1
Im folgenden Beispiel gibt die Abfrage NULL
zurück, da die Ganzzahlargumente identisch sind.
SELECT NULLIF(1, 1);
case ------- NULL
Im folgenden Beispiel gibt die Abfrage null zurück, wenn die LISTID- und SALESID-Werte übereinstimmen:
select nullif(listid,salesid), salesid from sales where salesid<10 order by 1, 2 desc; listid | salesid --------+--------- 4 | 2 5 | 4 5 | 3 6 | 5 10 | 9 10 | 8 10 | 7 10 | 6 | 1 (9 rows)
Sie können NULLIF verwenden, um sicherzustellen, dass leere Zeichenfolgen stets als Null-Werte zurückgegeben werden. Im folgenden Beispiel gibt der NULLIF-Ausdruck entweder einen Null-Wert oder eine Zeichenfolge zurück, die mindestens ein Zeichen enthalten.
insert into category values(0,'','Special','Special'); select nullif(catgroup,'') from category where catdesc='Special'; catgroup ---------- null (1 row)
NULLIF ignoriert am Ende stehende Leerzeichen. Wenn eine Zeichenfolge nicht leer ist, aber Leerzeichen enthält, gibt NULLIF ebenfalls null zurück:
create table nulliftest(c1 char(2), c2 char(2)); insert into nulliftest values ('a','a '); insert into nulliftest values ('b','b'); select nullif(c1,c2) from nulliftest; c1 ------ null null (2 rows)