FirebirdSQL logo

CONTAINING

Disponible en

DSQL, PSQL, ESQL.

Syntaxe
<value> [NOT] CONTAINING <substring>

L’opérateur CONTAINING recherche une chaîne ou un type de chaîne en trouvant une séquence de caractères qui correspond à son argument.Il peut être utilisé pour des recherches alphanumériques (sous forme de chaîne de caractères) dans des nombres et des dates.Les recherches de type CONTAINING ne sont pas sensibles à la casse.Toutefois, si un tri sensible aux accents est utilisé, la recherche sera sensible aux accents.

Lorsque l’on utilise l’opérateur CONTAINING, tous les caractères d’une chaîne sont pris en compte.Cela s’applique également aux espaces avant et arrière.Si l’opération de comparaison dans une requête doit retourner toutes les chaînes contenant des chaînes CONTAINING 'abv' (avec un caractère d’espacement à la fin), une chaîne contenant 'abv' (sans caractère d’espacement) ne sera pas retournée.

Lors de l’utilisation du prédicat CONTAINING dans les termes de recherche des requêtes DML, l’optimiseur Firebird ne peut pas utiliser un index sur la colonne recherchée.

Recherche de sous-chaînes à l’aide du prédicat CONTAINING.

Recherchez les projets qui contiennent la chaîne “Map” dans leur nom :

SELECT *
FROM PROJECT
WHERE PROJ_NAME CONTAINING 'map';

Dans ce cas, deux lignes avec les noms “AutoMap” et “MapBrowser port” seront retournées.

Example 1. Recherche dans une date à l’aide du prédicat CONTAINING.

Une recherche d’enregistrements de modifications salariales dont la date contient le chiffre 84 (dans ce cas, les modifications qui ont eu lieu en 1984) :

SELECT *
FROM SALARY_HISTORY
WHERE CHANGE_DATE CONTAINING 84;
Voir aussi :

LIKE.

SIMILAR TO

Disponible en

DSQL, PSQL.

Syntaxe
string-expression [NOT] SIMILAR TO <pattern> [ESCAPE <escape-char>]

<pattern> ::= Expression régulière SQL
<escape-char> ::= symbole d'échappement

L’instruction SIMILAR TO vérifie si une chaîne de caractères correspond à un modèle d’expression régulière SQL.Contrairement à d’autres langages, le modèle doit correspondre à la totalité de la chaîne de caractères pour être exécuté avec succès - la correspondance d’une sous-chaîne ne suffit pas.Si l’un des opérandes est NULL, le résultat est NULL.Sinon, le résultat est TRUE ou FALSE.

Syntaxe des expressions régulières SQL

La syntaxe suivante définit le format d’une expression SQL régulière.Il s’agit d’une définition complète et correcte.Il est très formel et plutôt long et sera probablement déroutant pour ceux qui n’ont aucune expérience des expressions régulières.N’hésitez pas à la sauter et à commencer à lire la section suivante, Création d’expressions régulières qui utilise une approche simple à complexe.

<regular expression> ::= <regular term> ['|' <regular term> ...]

<regular term> ::= <regular factor> ...

<regular factor> ::= <regular primary> [<quantifier>]

<quantifier> ::= ? | * | + | '{' <m> [,[<n>]] '}'

<m>, <n> ::= des nombres positifs entiers, si les deux nombres sont présents, alors <m> <= <n>

<regular primary> ::=
    <character> | <character class> | %
  | (<regular expression>)

<character> ::= <escaped character> | <non-escaped character>

<escaped character> ::=
  <escape-char> <special character> | <escape-char> <escape-char>

<special character> ::= l'un des symboles []()|^-+*%_?{}

<non-escaped character> ::=
  tout caractère sauf <special character>
  et non équivalent <escape-char> (si c'est le cas)

<character class> ::=
    '_' | '[' <member> ... ']' | '[^' <non-member> ... ']'
  | '[' <member> ... '^' <non-member> ... ']'

<member>, <non-member> ::= <character> | <range> | <predefined class>

<range> ::= <character>-<character>

<predefined class> ::= '[:' <predefined class name> ':]'

<predefined class name> ::=
  ALPHA | UPPER | LOWER | DIGIT | ALNUM | SPACE | WHITESPACE
Création d’expressions régulières

Cette section présente les éléments et les règles de construction des expressions régulières SQL.