Teradata-CASE and COALESCE

hirdetések

ez a fejezet a Teradata eset-és egyesítési funkcióit ismerteti.

CASE Expression

CASE expression kiértékeli az egyes sorokat egy feltétel vagy WHEN záradék alapján, és visszaadja az első egyezés eredményét. Ha nincsenek mérkőzések, akkor az eredmény más része visszatért.

szintaxis

a következő az ESET kifejezés szintaxisa.

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

példa

Tekintsük a következő alkalmazotti táblázatot.

Alkalmazottnem Vezetéknév Vezetéknév Csatlakozottidátum Osztálynem Születési Dátum
101 Mike James 3/27/2005 1 1/5/1980
102 Robert Williams 4/25/2007 2 3/5/1983
103 Péter Pál 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

a következő példa kiértékeli a DepartmentNo oszlopot, és 1 értéket ad vissza, ha a department száma 1; 2 értéket ad vissza, ha a department száma 3; egyébként érvénytelen részlegként adja vissza az értéket.

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

a fenti lekérdezés végrehajtásakor a következő kimenetet állítja elő.

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

a fenti eset kifejezés a következő formában is írható, amely ugyanazt az eredményt eredményezi, mint fent.

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

COALESCE

COALESCE egy olyan utasítás, amely a kifejezés első nem null értékét adja vissza. NULL értéket ad vissza, ha a kifejezés összes argumentuma null értékre kerül. A következő a szintaxis.

szintaxis

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

példa

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

NULLIF

NULLIF utasítás NULL értéket ad vissza, ha az argumentumok egyenlőek.

szintaxis

a következőkben a szintaxis a NULLIF nyilatkozatot.

NULLIF(expression 1, expression 2) 

példa

a következő példa NULL értéket ad vissza, ha a DepartmentNo értéke 3. Ellenkező esetben visszaadja a Részlegetnincs érték.

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

a fenti lekérdezés a következő rekordokat adja vissza. Láthatja, hogy a 105-ös alkalmazottnak nincs osztálya. mint nulla.

*** 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
reklámok

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.