Catégories :

Fonctions de chaîne et fonctions binaires (Correspondance/Comparaison)

ILIKE ANY

Effectue une comparaison insensible à la casse pour faire correspondre une chaîne à un ou plusieurs modèles spécifiés. Utilisez cette fonction dans une clause WHERE pour filtrer les correspondances. Pour une correspondance ne respectant pas la casse, utilisez LIKE ANY à la place.

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 :

[ NOT ] LIKE , [ NOT ] ILIKE , LIKE ANY

Syntaxe

<subject> ILIKE ANY (<pattern1> [, <pattern2> ... ] ) [ ESCAPE <escape_char> ]
Copy

Arguments

Obligatoire :

subject

La chaîne à comparer au(x) modèle(s).

pattern#

Le ou les modèles auxquels la chaîne doit être comparée. Vous devez spécifier au moins un modèle.

Facultatif :

escape_char

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. La valeur est TRUE s’il y a une correspondance. Sinon, renvoie FALSE. 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) dans subject comme des correspondances.

  • Le modèle est considéré comme une correspondance s’il correspond à toute la chaîne d’entrée (sujet). Pour faire correspondre une séquence n’importe où dans une chaîne, commencez et terminez le modèle par %. Exemple : “%chose%”.

  • NULL ne correspond pas à NULL. En d’autres termes, si le sujet est NULL et l’un des motifs est NULL, cela ne sera pas considéré comme une correspondance.

  • Vous pouvez utiliser l’opérateur logique NOT avant subject pour effectuer une comparaison insensible à la casse qui renvoie TRUE s’il ne correspond à aucun des modèles spécifiés.

  • Si la fonction est utilisée avec une sous-requête, celle-ci doit renvoyer une seule ligne.

    Par exemple, les éléments suivants doivent être utilisés uniquement si la sous-requête renvoie une seule ligne :

    SELECT ...
        WHERE x ILIKE ANY (SELECT ...)
    
    Copy

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');
Copy

Exemples

Ceci montre comment utiliser ILIKE ANY :

Créer une table contenant des chaînes :

CREATE OR REPLACE TABLE ilike_example(name VARCHAR(20));
INSERT INTO ilike_example VALUES
    ('jane doe'),
    ('Jane Doe'),
    ('JANE DOE'),
    ('John Doe'),
    ('John Smith');
Copy
SELECT * 
  FROM ilike_example 
  WHERE name ILIKE ANY ('jane%', '%SMITH')
  ORDER BY name;
Copy
+------------+                                                                  
| NAME       |
|------------|
| JANE DOE   |
| Jane Doe   |
| John Smith |
| jane doe   |
+------------+

Pour des exemples d’utilisation de caractères génériques, voir la documentation de la fonction associée LIKE ANY.