- Catégories :
Fonctions de chaîne et fonctions binaires (Correspondance/Comparaison)
[ NOT ] ILIKE¶
Effectue une comparaison insensible à la casse pour déterminer si une chaîne correspond ou non à un modèle spécifié. Pour une correspondance ne respectant pas la casse, utilisez LIKE à la place.
LIKE, ILIKE et RLIKE effectuent tous des opérations similaires. Cependant, RLIKE utilise la syntaxe POSIX ERE (expression régulière étendue) au lieu de la syntaxe de modèle SQL utilisée par LIKE et ILIKE.
Astuce
Vous pouvez utiliser le service d’optimisation de recherche pour améliorer les performances des requêtes qui appellent cette fonction. Pour plus de détails, voir Service d’optimisation de la recherche.
- Voir aussi:
Syntaxe¶
<subject> [ NOT ] ILIKE <pattern> [ ESCAPE <escape> ]
ILIKE( <subject> , <pattern> [ , <escape> ] )
Arguments¶
Obligatoire :
subject
Sujet devant correspondre.
pattern
Modèle devant correspondre.
Facultatif :
escape
Caractère(s) inséré(s) devant un caractère générique pour indiquer que le caractère générique doit être interprété comme un caractère standard et non comme un caractère générique.
Renvoie¶
Renvoie un BOOLEAN ou un NULL.
Lorsque ILIKE est spécifié, la valeur est TRUE s’il y a une correspondance. Sinon, renvoie FALSE.
Lorsque NOT ILIKE est spécifié, la valeur est TRUE s’il n’y a pas de correspondance. Sinon, renvoie FALSE.
Lorsque ILIKE ou NOT ILIKE est spécifié, renvoie NULL si l’un des arguments est NULL.
Notes sur l’utilisation¶
Les caractères génériques SQL sont pris en charge dans le
pattern
:Un trait de soulignement (
_
) correspond à n’importe quel caractère.Un signe de pourcentage (
%
) correspond à toute séquence de zéro caractère ou plus.
Les caractères génériques du
pattern
incluent les caractères de nouvelle ligne (\n
) danssubject
comme des correspondances.La correspondance de modèle ILIKE couvre la chaîne entière. Pour faire correspondre une séquence n’importe où dans une chaîne, commencez et terminez le motif par
%
.Il n’y a pas de caractère d’échappement par défaut.
Si vous utilisez la barre oblique inversée en tant que caractère d’échappement, vous devez alors spécifier l’échappement de la barre oblique inversée dans la clause ESCAPE. Par exemple, la commande suivante spécifie que le caractère d’échappement est la barre oblique inversée, puis utilise ce caractère d’échappement pour rechercher « % » comme un littéral (sans le caractère d’échappement, le « % » serait traité comme un caractère générique) :
'SOMETHING%' ILIKE '%\\%%' ESCAPE '\\';
Pour obtenir des exemples d’utilisation des caractères d’échappement, et en particulier de la barre oblique inversée en tant que caractère d’échappement, voir les exemples de la fonction LIKE.
Détails du classement¶
Seules les spécifications de classement upper
, lower
, et trim
sont prises en charge. Les combinaisons avec upper
, lower
, et trim
sont également prises en charge (par exemple, upper-trim
et lower-trim
), à l’exception des combinaisons locales (par exemple, en-upper
).
Note
Pour utiliser cette fonction avec une colonne qui a les spécificateurs de classement upper
, lower
, ou trim
, vous devez activer le bundle de changements de comportement 2024_02 dans votre compte.
Pour activer ce bundle dans votre compte, exécutez l’instruction suivante :
SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02');
Exemples¶
CREATE OR REPLACE TABLE ilike_ex(name VARCHAR(20)); INSERT INTO ilike_ex VALUES ('John Dddoe'), ('Joe Doe'), ('John_down'), ('Joe down'), (null);SELECT * FROM ilike_ex WHERE name ILIKE '%j%h%do%' ORDER BY 1;+-------------+ | NAME | |-------------| | John Dddoe | | John_down | +-------------+SELECT * FROM ilike_ex WHERE name NOT ILIKE '%j%h%do%' ORDER BY 1;+-----------+ | NAME | |-----------| | Joe Doe | | Joe down | +-----------+SELECT * FROM ilike_ex WHERE name ILIKE '%j%h%^_do%' ESCAPE '^' ORDER BY 1;+-----------+ | NAME | |-----------| | John_down | +-----------+