Teradata-CASE and COALESCE

Pubblicità

Questo capitolo spiega le funzioni CASE e COALESCE di Teradata.

Espressione CASO

Espressione CASO valuta ogni riga rispetto a una condizione o clausola WHEN e restituisce il risultato della prima corrispondenza. Se non ci sono corrispondenze, il risultato viene restituito da un’altra parte.

Sintassi

Di seguito è riportata la sintassi dell’espressione CASE.

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

Esempio

Si consideri la seguente tabella Employee.

EmployeeNo Nome Cognome JoinedDate DepartmentNo Data Di Nascita
101 Mike Giacomo 3/27/2005 1 1/5/1980
102 Robert Williams 4/25/2007 2 3/5/1983
103 Pietro Paolo 3/21/2007 2 4/1/1983
104 Alex Stuart 2/1/2008 2 11/6/1984
105 Robert Giacomo 1/4/2008 3 12/1/1984

L’esempio seguente restituisce il DepartmentNo colonna e restituisce il valore 1 se il reparto è il numero 1; restituisce 2 se il numero di reparto a 3; in caso contrario, restituisce valore non valido dipartimento.

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

Quando viene eseguita la query di cui sopra, produce il seguente output.

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

L’espressione del CASO precedente può anche essere scritta nella seguente forma che produrrà lo stesso risultato di cui sopra.

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

COALESCE

COALESCE è un’istruzione che restituisce il primo valore non nullo dell’espressione. Restituisce NULL se tutti gli argomenti dell’espressione valutano NULL. Di seguito è riportata la sintassi.

Sintassi

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

Esempio

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

NULLIF

L’istruzione NULLIF restituisce NULL se gli argomenti sono uguali.

Sintassi

Di seguito è riportata la sintassi dell’istruzione NULLIF.

NULLIF(expression 1, expression 2) 

Esempio

L’esempio seguente restituisce NULL se DepartmentNo è uguale a 3. Altrimenti, restituisce il valore DepartmentNo.

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

La query di cui sopra restituisce i seguenti record. Si può vedere che dipendente 105 ha reparto no. come 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
Pubblicità

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.