Teradata-CASE and COALESCE
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