NULLIF-Funktion - Amazon Redshift

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)