NULLIF-Funktion - Amazon Redshift

Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting.

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)