Les tableaux suivants décrivent les opérateurs de comparaison. Ces opérateurs peuvent être appliqués aux expressions de type chaîne, numérique, date, heure, pointeur et image avec métadonnées (il n'est donc pas possible de les utiliser avec des expressions de type tableau ou BLOB).
Une expression qui utilise un opérateur de comparaison retourne une valeur booléenne, soit VRAI soit FAUX.
Note : Il est possible de comparer deux images à l'aide de la commande Equal pictures.
Opération | Syntaxe | Retourne | Expression | Valeur |
Egalité | Chaîne = Chaîne | Booléen | "abc" = "abc" | Vrai |
| | | "abc" = "abd" | Faux |
Inégalité | Chaîne # Chaîne | Booléen | "abc" # "abd" | Vrai |
| | | "abc" # "abc" | Faux |
Supérieur à | Chaîne > Chaîne | Booléen | "abd" > "abc" | Vrai |
| | | "abc" > "abc" | Faux |
Inférieur à | Chaîne < Chaîne | Booléen | "abc" < "abd" | Vrai |
| | | "abc" < "abc" | Faux |
Supérieur ou égal à | Chaîne >= Chaîne | Booléen | "abd" >= "abc" | Vrai |
| | | "abc" >= "abd" | Faux |
Inférieur ou égal à | Chaîne <= Chaîne | Booléen | "abc" <= "abd" | Vrai |
| | | "abd" <= "abc" | Faux |
Contient mot-clé | Chaîne % Chaîne | Booléen | "Alpha Bravo" % "Bravo" | Vrai |
| | | "Alpha Bravo" % "ravo" | Faux |
| Image % Chaîne | Booléen | Expr_image % "Mer" | Vrai (*) |
(*) Si le mot-clé "Mer" a été associé à l'image stockée dans l'expression image (champ ou variable).
Important : Des informations supplémentaires sur les comparaisons de chaînes sont fournies à la fin de cette section.
Opération | Syntaxe | Retourne | Expression | Valeur |
Egalité | Nombre = Nombre | Booléen | 10 = 10 | Vrai |
| | | 10 = 11 | Faux |
Inégalité | Nombre # Nombre | Booléen | 10 #11 | Vrai |
| | | 10 # 10 | Faux |
Supérieur à | Nombre > Nombre | Booléen | 11 > 10 | Vrai |
| | | 10 > 11 | Faux |
Inférieur à | Nombre < Nombre | Booléen | 10 < 11 | Vrai |
| | | 11 < 10 | Faux |
Supérieur ou égal à | Nombre >= Nombre | Booléen | 11 >= 10 | Vrai |
| | | 10 >= 11 | Faux |
Inférieur ou égal à | Nombre <= Nombre | Booléen | 10 <= 11 | Vrai |
| | | 11 <= 10 | Faux |
Note : Pour plus d'informations sur la précision des comparaisons d'égalité des nombres réels, reportez-vous à la commande SET REAL COMPARISON LEVEL.
Avec :
vPtrA:=->unObjet
vPtrB:=->unObjet
vPtrC:=->autreObjet
Opération | Syntaxe | Retourne | Expression | Valeur |
Egalité | Pointeur = Pointeur | Booléen | vPtrA = vPtrB | Vrai |
| | | vPtrA = vPtrC | Faux |
Inégalité | Pointeur # Pointeur | Booléen | vPtrA # vPtrC | Vrai |
| | | vPtrA # vPtrB | Faux |
Voici quelques informations supplémentaires sur les comparaisons d'alphanumériques :
- Les chaînes sont toujours comparées caractère par caractère (hormis en cas de recherche par mot-clé, cf. ci-dessous).
- Lors d'une comparaison de chaînes, les caractères diacritiques sont comparés à l'aide de la table de comparaison des caractères de votre machine. Par exemple, les expressions suivantes retournent VRAI :
"n"="ñ"
"n"="Ñ"
"A"="å"
- Le joker (@) peut être utilisé dans toute comparaison de chaînes. Il remplace un ou plusieurs caractères. Ainsi, par exemple, l'expression suivante est évaluée à VRAI :
"abcdefghij"="abc@"
Le joker doit être utilisé dans le second opérande (la chaîne qui se trouve à droite de l'opérateur). L'expression suivante est évaluée à FAUX car le joker est alors considéré en tant que caractère :
"abc@"="abcdefghij"
Le joker signifie “un ou plusieurs caractères sinon rien”. Les expressions suivantes sont évaluées à VRAI :
"abcdefghij"="abcdefghij@"
"abcdefghij"="@abcdefghij"
"abcdefghij"="abcd@efghij"
"abcdefghij"="@abcdefghij@"
"abcdefghij"="@abcde@fghij@"
En revanche, dans tous les cas, lorsque deux jokers consécutifs sont placés dans une comparaison de chaînes, celle-ci sera évaluée à FAUX. L'expression suivante est à FAUX :
"abcdefghij"="abc@@fg"
Lorsque l'opérateur de comparaison est ou contient un symbole < ou >, seule la comparaison avec un seul joker situé en fin d'opérande est prise en charge :
"abcd"<="abc@"
"abcd"<="abc@ef"
Note : Si vous souhaitez effectuer des comparaisons ou des recherches utilisant @ en tant que caractère (et non en tant que joker), vous disposez de deux possibilités :
- Utiliser l'option “Considérer @ comme joker uniquement au début et à la fin des chaînes de caractères”, accessible via la boîte de dialogue des Propriétés de la base.
Cette option permet de paramétrer le mode d’interprétation du caractère @ lorsque celui-ci est inclus dans une chaîne de caractères. Elle peut donc influer sur le fonctionnement des opérateurs de comparaison utilisés dans le cadre de recherches ou de tris. Pour plus d'informations, reportez-vous au manuel Mode Développement de 4D.