FirebirdSQL logo

Imbrications

Les conditions vérifiables ne sont pas toujours des prédicats simples.Il peut s’agir d’un groupe de prédicats, dont chacun, lorsqu’il est calculé, contribue au calcul de la vérité globale.Ces conditions complexes sont appelées assertions.Les assertions peuvent être constituées d’un ou plusieurs prédicats liés par les opérateurs logiques AND, OR et NOT. Les parenthèses peuvent être utilisées pour regrouper des prédicats et contrôler l’ordre des calculs.

Chacun des prédicats peut contenir des prédicats imbriqués.Le résultat du calcul de la vérité d’une déclaration est obtenu en calculant tous les prédicats dans la direction de l’interne vers l’externe.Chaque "niveau" est calculé par ordre de priorité jusqu’à obtenir la valeur de vérité de l’énoncé final.

Prédicats de comparaison

Un prédicat de comparaison est constitué de deux expressions jointes par un opérateur de comparaison.Il existe six opérateurs de comparaison traditionnels :

=, >, <, >=, <=, <>

(Voir Opérateurs de comparaison pour une liste complète des opérateurs de comparaison).

Si une partie (gauche ou droite) d’un prédicat de comparaison contient NULL, la valeur du prédicat est indéfinie (UNKNOWN).

Example 1. Prédicats de comparaison

Obtenez des informations sur les ordinateurs dotés d’un processeur d’une fréquence d’au moins 500 MHz et d’un prix inférieur à 800 €.

SELECT *
FROM Pc
WHERE speed >= 500 AND price < 800;

Obtenez des informations sur toutes les imprimantes qui sont des imprimantes à matrice de points et qui coûtent moins de 300 €.

SELECT *
FROM Printer
WHERE type = 'matrix' AND price < 300;

La requête suivante ne retournera aucune entrée car la comparaison est faite avec une pseudo-valeur de NULL, même s’il existe des imprimantes avec un type non spécifié.

SELECT *
FROM Printer
WHERE type = NULL AND price < 300;
Note
Note sur les comparaisons de chaînes de caractères

Lors de la comparaison de l’égalité des types de champs CHAR et VARCHAR, les espaces de fin sont ignorés dans tous les cas.

Autres prédicats de comparaison

Les autres prédicats de comparaison sont constitués de mots-clés.

BETWEEN

Disponible en

DSQL, PSQL, ESQL.

Syntaxe
<value> [NOT] BETWEEN <value_1> AND <value_2>

Le prédicat BETWEEN vérifie si une valeur se situe (ou ne se situe pas en utilisant NOT) dans une plage de valeurs inclusive.

Les opérandes du prédicat BETWEEN sont deux arguments de types compatibles.Contrairement à d’autres bases de données, dans Firebird le prédicat BETWEEN n’est pas symétrique.La plus petite valeur doit être le premier argument, sinon le prédicat BETWEEN sera toujours faux.La recherche est une recherche inclusive.Ainsi, le prédicat BETWEEN peut être réécrit comme suit :

<value> >= <value_1> AND <value> <= <value_2>

Lors de l’utilisation du prédicat BETWEEN dans les termes de recherche des requêtes DML, l’optimiseur Firebird peut utiliser un index sur la colonne recherchée, si disponible.

Example 1. Utilisation d’un prédicat BETWEEN
SELECT *
FROM EMPLOYEE
WHERE HIRE_DATE BETWEEN date '01.01.1992' AND CURRENT_DATE