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.
NULLIFFunktion
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 COALESCE Ausdrucks NVL oder.
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 SALESID Werte LISTID und 1 ü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 damit sicherstellenNULLIF, dass leere Zeichenfolgen immer als Nullen zurückgegeben werden. Im folgenden Beispiel gibt der NULLIF Ausdruck entweder einen Nullwert oder eine Zeichenfolge zurück, die mindestens ein Zeichen enthält.
insert into category values(0,'','Special','Special'); select nullif(catgroup,'') from category where catdesc='Special'; catgroup ---------- null (1 row)
NULLIFignoriert nachfolgende Leerzeichen. Wenn eine Zeichenfolge nicht leer ist, sondern Leerzeichen enthält, NULLIF wird trotzdem Null zurückgegeben:
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)