Teradata-CASE et COALESCE

Publicités

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
Annonces

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.