Teradata-CASE și COALESCE

reclame

acest capitol explică cazul și fuzionează funcțiile Teradata.

expresie de caz

expresie de caz evaluează fiecare rând în raport cu o condiție sau când clauză și returnează rezultatul primului meci. Dacă nu există meciuri, atunci rezultatul din altă parte a revenit.

sintaxă

următoarea este sintaxa expresiei de caz.

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

exemplu

luați în considerare următorul tabel de angajați.

Angajatnu Prenume Prenume Joinedate Departamentnu Data Nasterii
101 Mike James 3/27/2005 1 1/5/1980
102 Robert Williams 4/25/2007 2 3/5/1983
103 Petru Pavel 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

următorul exemplu evaluează coloana DepartmentNo și returnează valoarea 1 dacă numărul departamentului este 1; returnează 2 dacă numărul departamentului este 3; în caz contrar, returnează valoarea ca departament nevalid.

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

când interogarea de mai sus este executată, aceasta produce următoarea ieșire.

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

expresia cazului de mai sus poate fi scrisă și în următoarea formă, care va produce același rezultat ca mai sus.

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

COALESCE

COALESCE este o afirmație care returnează prima valoare non-nulă a expresiei. Returnează NULL dacă toate argumentele expresiei se evaluează la NULL. În urma este sintaxa.

sintaxă

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

exemplu

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

nullif

declarația nullif returnează NULL dacă argumentele sunt egale.

sintaxă

următoarea este sintaxa instrucțiunii NULLIF.

NULLIF(expression 1, expression 2) 

exemplu

următorul exemplu returnează NULL dacă DepartmentNo este egal cu 3. În caz contrar, returnează Departamentulnici o valoare.

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

interogarea de mai sus returnează următoarele înregistrări. Puteți vedea că angajatul 105 are Departamentul nr. ca 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
reclame

Lasă un răspuns

Adresa ta de email nu va fi publicată.