Teradata-CASE I COALESCE
ten rozdział wyjaśnia przypadek i łączy funkcje Teradata.
wyrażenie CASE
wyrażenie CASE oblicza każdy wiersz względem klauzuli condition lub WHEN i zwraca wynik pierwszego dopasowania. Jeśli nie ma dopasowań, zwracany jest wynik z ELSE part of.
składnia
Poniżej znajduje się składnia wyrażenia CASE.
CASE <expression> WHEN <expression> THEN result-1 WHEN <expression> THEN result-2 ELSE Result-n END
przykład
rozważ następującą tabelę pracowników.
Pracowniknie | Imię | Nazwisko | Dołączonydata | Działnienie | Data Urodzenia |
---|---|---|---|---|---|
101 | Mike | James | 3/27/2005 | 1 | 1/5/1980 |
102 | Robert | Williams | 4/25/2007 | 2 | 3/5/1983 |
103 | Piotr | Paweł | 3/21/2007 | 2 | 4/1/1983 |
104 | Alex | Stuart | 2/1/2008 | 2 | 11/6/1984 |
105 | Robert | Jakub | 1/4/2008 | 3 | 12/1/1984 |
poniższy przykład oblicza kolumnę DepartmentNo i zwraca wartość 1, Jeśli numer działu wynosi 1; zwraca 2, Jeśli numer działu wynosi 3; w przeciwnym razie zwraca wartość jako nieprawidłowy dział.
SELECT EmployeeNo, CASE DepartmentNo WHEN 1 THEN 'Admin' WHEN 2 THEN 'IT' ELSE 'Invalid Dept' END AS Department FROM Employee;
gdy powyższe zapytanie jest wykonywane, wytwarza następujące wyjście.
*** 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
powyższe wyrażenie przypadku można również zapisać w następującej formie, która da taki sam wynik jak powyżej.
SELECT EmployeeNo, CASE WHEN DepartmentNo = 1 THEN 'Admin' WHEN DepartmentNo = 2 THEN 'IT' ELSE 'Invalid Dept' END AS Department FROM Employee;
COALESCE
COALESCE jest wyrażeniem, które zwraca pierwszą wartość niezerową wyrażenia. Zwraca NULL, jeśli wszystkie argumenty wyrażenia są równe NULL. Poniżej znajduje się składnia.
składnia
COALESCE(expression 1, expression 2, ....)
przykład
SELECT EmployeeNo, COALESCE(dept_no, 'Department not found') FROM employee;
nullif
Instrukcja nullif zwraca NULL, jeśli argumenty są równe.
składnia
Poniżej znajduje się składnia instrukcji NULLIF.
NULLIF(expression 1, expression 2)
przykład
poniższy przykład zwraca NULL, jeśli DepartmentNo jest równe 3. W przeciwnym razie zwraca wartość DepartmentNo.
SELECT EmployeeNo, NULLIF(DepartmentNo,3) AS department FROM Employee;
powyższe zapytanie zwraca następujące rekordy. Widać, że pracownik 105 ma dział nr. jako 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