Teradata-CASE I COALESCE

ogłoszenia

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
ogłoszenia

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.