Conditions

Une condition indique une combinaison d'expressions et d'opérateurs (booléens) logiques. La syntaxe d'expression OLAP présente les types de condition suivants :

Conditions de comparaison simple

Les conditions de comparaison comparent une expression à une autre. Le résultat de cette comparaison peut être TRUE, FALSE ou NULL.

Vous pouvez utiliser les opérateurs de comparaison suivants :

Opérateurs de comparaison simple
Opérateur
Description
>
Supérieur à
>=
Supérieur ou égal à
<
Inférieur à
<=
Inférieur ou égal à
=
Egal à

!=
^=

Différent de
<>
Supérieur ou inférieur à

Syntaxe

expr { > | >= | < | <= | = | != | ^= | <> } expr 

Arguments

expr correspond à n'importe quelle expression.

Exemples

5 > 3 est True, 4 != 5 est True, 6 >= 9 est False.

Conditions de comparaison de groupes

Une condition de comparaison de groupes indique une comparaison avec les membres d'une liste ou d'une sous-interrogation.

Vous pouvez utiliser les opérateurs de comparaison suivants :

Opérateurs de comparaison de groupes
Opérateur
Description
>
Supérieur à
>=
Supérieur ou égal à
<
Inférieur à
<=
Inférieur ou égal à
=
Egal à

!=
^=

Différent de
<>
Supérieur ou inférieur à

ANY
SOME

Renvoient True si au moins une valeur de la liste offre une correspondance, False dans le cas contraire.
ALL
Renvoie True si toutes les valeurs de la liste offrent une correspondance, False dans le cas contraire.

Syntaxe

expr
     { = | != | ^= | <> | > | < | >= | <= }
     { ANY | SOME | ALL }
     ({ expression_list | subquery })


Exemples

5 >= ALL (5, 10, 15) est True, 5 <> ANY (5, 10, 15) est True.

(color, size) = SOME (('RED', 'L'), ('GREEN', 'M')) renvoie True pour les articles rouges de grande taille, ou verts de moyenne taille.

Conditions de plage

L'opérateur BETWEEN vérifie si une valeur fait partie d'une plage de valeurs spécifique. Il renvoie True si la valeur testée est supérieure ou égale à la valeur inférieure donnée, et inférieure ou égale à la valeur supérieure indiquée.

Syntaxe

expr [ NOT ] BETWEEN expr AND expr

Exemple

7 NOT BETWEEN 10 AND 15 est True.

Conditions multiples

Les conjonctions comparent une seule expression à deux conditions.

Conjonctions
Opérateur
Description
AND
Renvoie TRUE si les deux conditions de composant sont TRUE. Renvoie FALSE si l'une des conditions est FALSE. Renvoie UNKNOWN dans les autres cas.
OR
Renvoie TRUE si l'une des conditions de composant est TRUE. Renvoie FALSE si les deux sont FALSE. Renvoie UNKNOWN dans les autres cas.

Syntaxe

expr operator condition1 { AND | OR } condition2 

Exemple

5 < 7 AND 5 > 3 est True ; 5 < 3 OR 10 < 15 est True.

Négation

L'opérateur NOT inverse la signification de la condition. Il renvoie TRUE si la condition est FALSE. Il renvoie FALSE si la condition est TRUE. Si la condition est UNKNOWN, UNKNOWN est conservé.

Syntaxe

NOT {BETWEEN | IN | LIKE | NULL }

Exemple

5 IS NOT NULL est True ; 5 NOT IN (5, 10, 15) est False.

Conditions spéciales

L'opérateur IS teste les conditions spéciales, telles que les valeurs NULL, l'infini et les valeurs non numériques.

Opérateurs de conditions spéciales
Opérateur Description
IS INFINITE Renvoie TRUE si l'expression est infinie, FALSE sinon.
IS NAN Renvoie TRUE si l'expression n'est pas numérique, FALSE sinon
IS NULL Renvoie TRUE si l'expression est une valeur NULL, FALSE sinon.

Syntaxe

expr IS [ NOT ] NULL

Exemple

13 IS NOT NULL est True.

Conditions de comparaison avec un modèle

Les conditions de comparaison avec un modèle comparent des données de caractère. Il existe deux groupes d'opérateurs dans cette catégorie : LIKE et REGEXP_LIKE.

Opérateurs LIKE

Les opérateurs LIKE indiquent un test impliquant une comparaison avec un modèle. Alors que l'opérateur d'égalité (=) recherche une correspondance exacte pour chaque valeur de caractère, les opérateurs LIKE recherchent les correspondances avec des modèles définis par des caractères spéciaux de comparaison avec un modèle ("caractères génériques").

Vous avez le choix entre les opérateurs LIKE suivants :

Opérateurs LIKE de comparaison avec un modèle
Opérateur Description
LIKE

Utilise les caractères du jeu de caractères d'entrée.

LIKEC Utilise des caractères Unicode complets. Il traite tout caractère Unicode supplémentaire comme deux caractères.
LIKE2 Utilise des points code UCS2. Il traite tout caractère Unicode supplémentaire comme un caractère.
LIKE4 Utilise des points code UCS4. Il traite tout caractère composite comme un caractère.

Syntaxe

char1 [ NOT ] ( LIKE | LIKEC | LIKE2 | LIKE4 )
  char2 [ ESCAPE esc_char ]

Arguments

char1 est une expression de texte correspondant à la valeur de recherche.

char2 est une expression de texte correspondant au modèle. Ce dernier peut contenir les caractères génériques suivants :

esc_char correspond à une expression de texte, en général un littéral, composée d'un caractère. Ce caractère d'échappement permet d'identifier un trait de soulignement ou un symbole de pourcentage utilisé dans un modèle comme un caractère littéral plutôt que comme un caractère générique. Vous pouvez également rechercher le caractère d'échappement lui-même en le répétant. Par exemple, si @ est le caractère d'échappement, vous pouvez utiliser @% pour rechercher % et @@ pour rechercher @.

Exemples

'Ducks' LIKE 'Duck_' et 'Ducky' LIKE 'Duck_' sont True.

'Duckling' LIKE 'Duck_' est False.

'Duckling' LIKE 'Duck%' est True.

Opérateur REGEXP_LIKE

REGEXP_LIKE effectue une comparaison avec une expression régulière au lieu de la simple comparaison avec un modèle effectuée par LIKE. Cet opérateur évalue des chaînes avec des caractères tels que définis par le jeu de caractères d'entrée.

Les expressions régulières Oracle se conforment à la norme sur les expressions régulières POSIX (Portable Operating System Interface) de l'IEEE et aux directives sur les expressions régulières Unicode du consortium Unicode. Pour plus d'informations sur les expressions régulières, reportez-vous au manuel Oracle Database SQL Reference.

Syntaxe

REGEXP_LIKE(source_char, pattern
            [, match_parameter ]
           )

Arguments

source_char correspond à l'expression dans laquelle la recherche a lieu. Il peut s'agir du type de données CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB ou NCLOB.

pattern correspond à l'expression à rechercher. Il s'agit généralement d'un littéral de texte dont le type de données peut être CHAR, VARCHAR2, NCHAR ou NVARCHAR2. Elle peut contenir jusqu'à 512 octets.

match_parameter est un littéral de texte qui vous permet de modifier le comportement de la recherche de correspondances par défaut de la fonction. Vous pouvez indiquer les valeurs suivantes :

Exemple

REGEXP_LIKE (first_name, '^Ste(v|ph)en$') correspond à Steven et à Stephen, mais pas à Stevens ni à Esteven, dans first_name.