Teradata-CASE et COALESCE
Ce chapitre explique les fonctions de CAS et de FUSION de Teradata.
Expression de CASSE
L’expression de CASSE évalue chaque ligne par rapport à une clause condition ou WHEN et renvoie le résultat de la première correspondance. S’il n’y a pas de correspondance, le résultat de ELSE part of est renvoyé.
Syntaxe
Voici la syntaxe de l’expression de CASSE.
CASE <expression> WHEN <expression> THEN result-1 WHEN <expression> THEN result-2 ELSE Result-n END
Exemple
Considérons le tableau des employés suivant.
EmployénOn | Prénom | Nom | Jointdate | Départementaucun | Date de naissance |
---|---|---|---|---|---|
101 | Mike | Jacques | 3/27/2005 | 1 | 1/5/1980 |
102 | Robert | Williams | 4/25/2007 | 2 | 3/5/1983 |
103 | Pierre | Paul | 3/21/2007 | 2 | 4/1/1983 |
104 | Alex | Stuart | 2/1/2008 | 2 | 11/6/1984 |
105 | Robert | Jacques | 1/4/2008 | 3 | 12/1/1984 |
L’exemple suivant évalue la colonne DepartmentNo et renvoie la valeur 1 si le numéro de département est 1; renvoie 2 si le numéro de département est 3; sinon, il renvoie la valeur comme département invalide.
SELECT EmployeeNo, CASE DepartmentNo WHEN 1 THEN 'Admin' WHEN 2 THEN 'IT' ELSE 'Invalid Dept' END AS Department FROM Employee;
Lorsque la requête ci-dessus est exécutée, elle produit la sortie suivante.
*** 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’expression de CAS ci-dessus peut également être écrite sous la forme suivante qui produira le même résultat que ci-dessus.
SELECT EmployeeNo, CASE WHEN DepartmentNo = 1 THEN 'Admin' WHEN DepartmentNo = 2 THEN 'IT' ELSE 'Invalid Dept' END AS Department FROM Employee;
COALESCE
COALESCE est une instruction qui renvoie la première valeur non nulle de l’expression. Il renvoie NULL si tous les arguments de l’expression sont évalués à NULL. Voici la syntaxe.
Syntaxe
COALESCE(expression 1, expression 2, ....)
Exemple
SELECT EmployeeNo, COALESCE(dept_no, 'Department not found') FROM employee;
NULLIF
L’instruction NULLIF renvoie NULL si les arguments sont égaux.
Syntaxe
Voici la syntaxe de l’instruction NULLIF.
NULLIF(expression 1, expression 2)
Exemple
L’exemple suivant renvoie NULL si le DepartmentNo est égal à 3. Sinon, il renvoie la valeur DepartmentNo.
SELECT EmployeeNo, NULLIF(DepartmentNo,3) AS department FROM Employee;
La requête ci-dessus renvoie les enregistrements suivants. Vous pouvez voir que l’employé 105 a le numéro de département. comme NUL.
*** 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