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 :
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érateur |
Description |
|---|---|
> |
Supérieur à |
>= |
Supérieur ou égal à |
< |
Inférieur à |
<= |
Inférieur ou égal à |
= |
Egal à |
|
Différent de |
<> |
Supérieur ou inférieur à |
expr { > | >= | < | <= | = | != | ^= | <> } expr
expr correspond à n'importe quelle expression.
5 > 3 est True, 4 != 5 est True, 6 >= 9 est False.
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érateur |
Description |
|---|---|
> |
Supérieur à |
>= |
Supérieur ou égal à |
< |
Inférieur à |
<= |
Inférieur ou égal à |
= |
Egal à |
|
Différent de |
<> |
Supérieur ou inférieur à |
|
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. |
expr
{ = | != | ^= | <> | > | < | >= | <= }
{ ANY | SOME | ALL }
({ expression_list | subquery })
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.
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.
expr [ NOT ] BETWEEN expr AND expr
7 NOT BETWEEN 10 AND 15 est True.
Les conjonctions comparent une seule expression à deux conditions.
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. |
expr operator condition1 { AND | OR } condition2
5 < 7 AND 5 > 3 est True ; 5 < 3 OR 10 < 15 est True.
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é.
NOT {BETWEEN | IN | LIKE | NULL }
5 IS NOT NULL est True ; 5 NOT IN (5, 10, 15) est False.
L'opérateur IS teste les conditions spéciales, telles que les valeurs NULL, l'infini et les valeurs non numériques.
| 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. |
expr IS [ NOT ] NULL
13 IS NOT NULL est True.
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.
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é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. |
char1 [ NOT ] ( LIKE | LIKEC | LIKE2 | LIKE4 ) char2 [ ESCAPE esc_char ]
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 :
Un trait de soulignement (_) correspond exactement à un caractère (par opposition à un octet dans un jeu de caractères multioctets) dans la valeur.
Un symbole de pourcentage (%) peut correspondre à zéro caractère ou à plusieurs (par opposition aux octets dans un jeu de caractères multioctets) dans la valeur. Le symbole "%" ne peut pas correspondre à une valeur NULL.
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 @.
'Ducks' LIKE 'Duck_' et 'Ducky' LIKE 'Duck_' sont True.
'Duckling' LIKE 'Duck_' est False.
'Duckling' LIKE 'Duck%' est True.
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.
REGEXP_LIKE(source_char, pattern
[, match_parameter ]
)
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 :
c : rechercher des correspondances en appliquant le respect maj/min.
i : rechercher des correspondances sans appliquer le respect maj/min.
m : traiter la chaîne source comme si elle comprenait plusieurs lignes. REGEXP_LIKE interprète respectivement ^ et $ comme le début et la fin d'une ligne, quel que soit l'endroit de la chaîne source où ces caractères se trouvent, et pas seulement s'ils figurent au début et à la fin de la chaîne source dans son ensemble. Par défaut, REGEXP_LIKE traite la chaîne source comme une seule ligne.
n : inclure le caractère de retour à la ligne dans les caractères englobés par le point (caractère générique). Par défaut, ce n'est pas le cas.
x : ignorer les caractères non imprimables.
REGEXP_LIKE (first_name, '^Ste(v|ph)en$') correspond à Steven et à Stephen, mais pas à Stevens ni à Esteven, dans first_name.
Copyright © 2003, 2007, Oracle. Tous droits réservés.