Catégories :

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

ENDSWITH

Renvoie TRUE si la première expression se termine par une seconde expression. Les deux expressions doivent être des expressions textuelles ou binaires.

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.

Syntaxe

ENDSWITH( <expr1> , <expr2> )
Copy

Arguments

expr1

La chaîne dans laquelle effectuer la recherche.

expr2

La chaîne à rechercher à la fin de expr1.

Renvoie

Renvoie un BOOLEAN ou NULL :

  • Renvoie TRUE si expr2 se termine par expr1.

  • Renvoie FALSE si expr2 ne se termine pas avec expr1.

  • Renvoie NULL si l’une des expressions d’entrée est NULL.

Détails du classement

The collation specifications of all input arguments must be compatible.

Cette fonction ne fonctionne pas avec les spécifications de classement suivantes :

  • pi (insensible à la ponctuation).

  • cs-ai (sensible à la casse, insensible aux accents)

Exemples

Ces exemples utilisent la fonction ENDSWITH.

Déterminer si les valeurs des colonnes contiennent une chaîne

Créer une table avec une seule colonne contenant des valeurs de chaîne.

CREATE OR REPLACE TABLE strings_test (s VARCHAR);

INSERT INTO strings_test values
  ('coffee'),
  ('ice tea'),
  ('latte'),
  ('tea'),
  (NULL);

SELECT * from strings_test;
Copy
+---------+
| S       |
|---------|
| coffee  |
| ice tea |
| latte   |
| tea     |
| NULL    |
+---------+

Déterminer si les valeurs de la colonne s se terminent avec la chaîne te :

SELECT * FROM strings_test WHERE ENDSWITH(s, 'te');
Copy
+-------+
| S     |
|-------|
| latte |
+-------+

Utiliser ENDSWITH avec un classement

Dans l’exemple suivant, ENDSWITH renvoie des résultats différents pour les mêmes valeurs d’argument avec des spécifications de classement différentes.

SELECT ENDSWITH(COLLATE('nñ', 'en-ci-ai'), 'n'),
       ENDSWITH(COLLATE('nñ', 'es-ci-ai'), 'n');
Copy
+------------------------------------------+------------------------------------------+
| ENDSWITH(COLLATE('NÑ', 'EN-CI-AI'), 'N') | ENDSWITH(COLLATE('NÑ', 'ES-CI-AI'), 'N') |
|------------------------------------------+------------------------------------------|
| True                                     | False                                    |
+------------------------------------------+------------------------------------------+