Utiliser un caractère d'échappement dans une phrase ESCAPE

Si la chaîne recherchée contient un caractère générique, un caractère de contrôle doit être spécifié dans la clause ESCAPE. Ce caractère de contrôle doit être utilisé dans le motif avant le caractère générique, indiquant que ce dernier doit être traité comme un caractère normal.

Exemples d'utilisation du prédicat LIKE
Example 1. Recherche de chaînes de caractères qui commencent par une sous-chaîne donnée à l'aide d'un prédicat. LIKE

Recherchez les numéros de département qui commencent par le mot "Software"

SELECT DEPT_NO
FROM DEPT
WHERE DEPT_NAME LIKE 'Software%';

Un index peut être utilisé dans cette requête s'il est construit sur le champ DEPT_NAME.

Note
Optimisation LIKE

En général, le prédicat LIKE n'utilise pas d'index. Cependant, si le prédicat prend la forme LIKE 'string%', il sera converti en un prédicat STARTING WITH qui utilisera un index. Si vous devez effectuer une recherche à partir du début d'une chaîne, il est recommandé d'utiliser le prédicat STARTING WITH au lieu du prédicat LIKE. STARTING WITH.

Example 2. Utilisation du caractère générique "_" dans un prédicat LIKE

Recherchez les employés dont le nom comporte 5 lettres commençant par "Sm" et finissant par "th". Dans ce cas, le prédicat sera vrai pour les noms "Smith" et "Smyth".

SELECT
    first_name
FROM
    employee
WHERE first_name LIKE 'Sm_th'
Example 3. Recherche dans une chaîne de caractères à l'aide d'un prédicat LIKE

Recherche de tous les clients dont l'adresse contient la chaîne "Rostov".

SELECT *
FROM CUSTOMER
WHERE ADDRESS LIKE '%Rostov%'
Tip

Si vous devez effectuer une recherche à l'intérieur d'une chaîne, nous vous recommandons d'utiliser le prédicat CONTAINING au lieu du prédicat LIKE. CONTAINING.

Utilisation du caractère de contrôle dans une phrase ESCAPE avec un prédicat LIKE.

Recherche les tables qui contiennent un caractère de soulignement dans leur nom. Dans ce cas, le caractère de contrôle est "#".

SELECT
  RDB$RELATION_NAME
FROM RDB$RELATIONS
WHERE RDB$RELATION_NAME LIKE '%#_%' ESCAPE '#'