Teradata - Opérateurs logiques et conditionnels

Teradata prend en charge les opérateurs logiques et conditionnels suivants. Ces opérateurs sont utilisés pour effectuer des comparaisons et combiner plusieurs conditions.

Syntaxe Sens
> Plus grand que
< Moins que
>= Plus grand ou égal à
<= Inférieur ou égal à
= Égal à
BETWEEN Si les valeurs dans la plage
IN Si les valeurs dans <expression>
NOT IN Si les valeurs ne sont pas dans <expression>
IS NULL Si la valeur est NULL
IS NOT NULL Si la valeur n'est PAS NULL
AND Combinez plusieurs conditions. Évalue à vrai uniquement si toutes les conditions sont remplies
OR Combinez plusieurs conditions. Évalue à vrai uniquement si l'une des conditions est remplie.
NOT Inverse le sens de la condition

ENTRE

La commande BETWEEN est utilisée pour vérifier si une valeur se trouve dans une plage de valeurs.

Exemple

Considérez le tableau des employés suivant.

Numéro d'employé Prénom Nom de famille JoinedDate DépartementNon Date de naissance
101 Mike James 27/03/2005 1 05/01/1980
102 Robert Williams 25/04/2007 2 05/03/1983
103 Peter Paul 21/03/2007 2 01/04/1983
104 Alex Stuart 2/1/2008 2 06/11/1984
105 Robert James 1/4/2008 3 01/12/1984

L'exemple suivant récupère les enregistrements avec des numéros d'employés compris entre 101,102 et 103.

SELECT EmployeeNo, FirstName FROM  
Employee 
WHERE EmployeeNo BETWEEN 101 AND 103;

Lorsque la requête ci-dessus est exécutée, elle renvoie les enregistrements d'employés dont le numéro d'employé est compris entre 101 et 103.

*** Query completed. 3 rows found. 2 columns returned. 
*** Total elapsed time was 1 second. 
 EmployeeNo            FirstName 
-----------  ------------------------------ 
   101                   Mike 
   102                   Robert 
   103                   Peter

DANS

La commande IN est utilisée pour vérifier la valeur par rapport à une liste de valeurs donnée.

Exemple

L'exemple suivant récupère les enregistrements avec les numéros d'employés 101, 102 et 103.

SELECT EmployeeNo, FirstName FROM  
Employee 
WHERE EmployeeNo in (101,102,103);

La requête ci-dessus renvoie les enregistrements suivants.

*** Query completed. 3 rows found. 2 columns returned. 
*** Total elapsed time was 1 second.  
 EmployeeNo            FirstName 
-----------  ------------------------------ 
   101                   Mike 
   102                   Robert 
   103                   Peter

PAS DEDANS

La commande NOT IN inverse le résultat de la commande IN. Il récupère les enregistrements dont les valeurs ne correspondent pas à la liste donnée.

Exemple

L'exemple suivant récupère les enregistrements dont les numéros d'employés ne figurent pas dans 101, 102 et 103.

SELECT * FROM  
Employee 
WHERE EmployeeNo not in (101,102,103);

La requête ci-dessus renvoie les enregistrements suivants.

*** Query completed. 2 rows found. 6 columns returned. 
*** Total elapsed time was 1 second. 
 EmployeeNo          FirstName                      LastName 
----------- ------------------------------ -----------------------------    
    104                Alex                          Stuart 
    105                Robert                        James