Teradata – CASE and COALESCE

advertenties

dit hoofdstuk legt de CASE-en COALESCEFUNCTIES van Teradata uit.

CASE Expression

CASE expression evalueert elke rij tegen een voorwaarde of wanneer clausule en geeft het resultaat van de eerste overeenkomst. Als er geen matches dan het resultaat van een ander deel van geretourneerd.

syntaxis

Hieronder volgt de syntaxis van de GEVALSUITDRUKKING.

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

voorbeeld

bekijk de volgende tabel voor werknemers.

EmployeeNo Voornaam Achternaam JoinedDate DepartmentNo Geboortedatum
101 Mike James 3/27/2005 1 1/5/1980
102 Robert Williams 4/25/2007 2 3/5/1983
103 Peter Paul 3/21/2007 2 4/1/1983
104 Alex Stuart 2/1/2008 2 11/6/1984
105 Robert James 1/4/2008 3 12/1/1984

het volgende voorbeeld evalueert de kolom DepartmentNo en retourneert waarde 1 als het afdelingsnummer 1 is; retourneert 2 als het afdelingsnummer 3 is; anders retourneert het waarde als ongeldige afdeling.

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

wanneer de bovenstaande query wordt uitgevoerd, produceert deze de volgende uitvoer.

*** 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

de bovenstaande GEVALUITDRUKKING kan ook in de volgende vorm worden geschreven, wat hetzelfde resultaat zal opleveren als hierboven.

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

COALESCE

COALESCE is een statement dat de eerste niet-nulwaarde van de uitdrukking retourneert. Het retourneert NULL als alle argumenten van de expressie evalueert naar NULL. Hieronder volgt de syntaxis.

syntaxis

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

voorbeeld

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

NULLIF

NULLIF statement geeft NULL als de argumenten gelijk zijn.

syntaxis

Hieronder volgt de syntaxis van de NULLIF-verklaring.

NULLIF(expression 1, expression 2) 

voorbeeld

het volgende voorbeeld geeft NULL terug als het Departementno gelijk is aan 3. Anders geeft het de Departementgeen waarde terug.

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

de bovenstaande zoekopdracht geeft de volgende records terug. Je kunt zien dat werknemer 105 afdeling nr heeft. als nul.

*** 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
advertenties

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.