Teradata – FALL und VERSCHMELZEN

Advertisements

In diesem Kapitel werden die CASE- und COALESCE-Funktionen von Teradata erläutert.

CASE Expression

CASE expression wertet jede Zeile anhand einer Bedingung oder WHEN-Klausel aus und gibt das Ergebnis der ersten Übereinstimmung zurück. Wenn es keine Übereinstimmungen gibt, wird das Ergebnis von ELSE part of zurückgegeben.

Syntax

Es folgt die Syntax des CASE-Ausdrucks.

CASE <expression> WHEN <expression> THEN result-1 WHEN <expression> THEN result-2 ELSE Result-n END

Beispiel

Betrachten Sie die folgende Mitarbeitertabelle.

Mitarbeiternein Vorname Nachname Beitrittsdatum Abteilungnein Geburtsdatum
101 Mike James 3/27/2005 1 1/5/1980
102 Robert Williams 4/25/2007 2 3/5/1983
103 Petrus Paulus 3/21/2007 2 4/1/1983
104 Alex Stuart 2/1/2008 2 11/6/1984
105 Robert Jakobus 1/4/2008 3 12/1/1984

Das folgende Beispiel wertet die Spalte DepartmentNo aus und gibt den Wert 1 zurück, wenn die Abteilungsnummer 1 ist; gibt 2 zurück, wenn die Abteilungsnummer 3 ist; Andernfalls wird der Wert als ungültige Abteilung zurückgegeben.

SELECT EmployeeNo, CASE DepartmentNo WHEN 1 THEN 'Admin' WHEN 2 THEN 'IT' ELSE 'Invalid Dept' END AS Department FROM Employee; 

Wenn die obige Abfrage ausgeführt wird, erzeugt sie die folgende Ausgabe.

*** Query completed. 5 rows found. 2 columns returned. *** Total elapsed time was 1 second. EmployeeNo Department ----------- ------------ 101 Admin 104 IT 102 IT 105 Invalid Dept 103 IT

Der obige Fallausdruck kann auch in der folgenden Form geschrieben werden, die das gleiche Ergebnis wie oben ergibt.

SELECT EmployeeNo, CASE WHEN DepartmentNo = 1 THEN 'Admin' WHEN DepartmentNo = 2 THEN 'IT' ELSE 'Invalid Dept' END AS Department FROM Employee;

COALESCE

COALESCE ist eine Anweisung, die den ersten Wert ungleich Null des Ausdrucks zurückgibt. Es gibt NULL zurück, wenn alle Argumente des Ausdrucks NULL ergeben. Es folgt die Syntax.

Syntax

COALESCE(expression 1, expression 2, ....) 

Beispiel

SELECT EmployeeNo, COALESCE(dept_no, 'Department not found') FROM employee;

NULLIF

NULLIF-Anweisung gibt NULL zurück, wenn die Argumente gleich sind.

Syntax

Es folgt die Syntax der NULLIF-Anweisung.

NULLIF(expression 1, expression 2) 

Beispiel

Das folgende Beispiel gibt NULL zurück, wenn DepartmentNo gleich 3 ist. Andernfalls wird der Wert DepartmentNo zurückgegeben.

SELECT EmployeeNo, NULLIF(DepartmentNo,3) AS department FROM Employee;

Die obige Abfrage gibt die folgenden Datensätze zurück. Sie können sehen, dass Mitarbeiter 105 die Abteilungs-Nr. als NULL.

*** Query completed. 5 rows found. 2 columns returned. *** Total elapsed time was 1 second. EmployeeNo department ----------- ------------------ 101 1 104 2 102 2 105 ? 103 2
Anzeigen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.