Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
SIMILARÀ
L'opérateur SIMILAR TO fait correspondre une expression de chaîne, telle qu'un nom de colonne, à un modèle d'expression régulière SQL standard. Un modèle d'expression SQL régulière peut inclure un ensemble de métacaractères correspondant à des modèles, y compris les deux pris en charge par l'opérateur. LIKE
L'opérateur SIMILAR TO renvoie vrai uniquement si son modèle correspond à la chaîne entière, contrairement au comportement des expressions POSIX régulières, où le modèle peut correspondre à n'importe quelle partie de la chaîne.
SIMILARTO effectue une correspondance entre majuscules et minuscules.
Note
La mise en correspondance d'expressions régulières SIMILAR à l'aide de TO est coûteuse en termes de calcul. Nous vous recommandons de l'utiliser dans la LIKE mesure du possible, en particulier lors du traitement d'un très grand nombre de lignes. Par exemple, les requêtes suivantes sont fonctionnellement identiques, mais celle qui les utilise LIKE s'exécute plusieurs fois plus vite que celle qui utilise une expression régulière :
select count(*) from event where eventname SIMILAR TO '%(Ring|Die)%'; select count(*) from event where eventname LIKE '%Ring%' OR eventname LIKE '%Die%';
Syntaxe
expression [ NOT ] SIMILAR TO pattern [ ESCAPE 'escape_char' ]
Arguments
- expression
-
Expression valide de UTF 8 caractères, telle qu'un nom de colonne.
- SIMILARÀ
-
SIMILARTO effectue une correspondance de modèle sensible aux majuscules et minuscules pour l'ensemble de la chaîne de l'expression.
- pattern
-
Expression valide de UTF -8 caractères représentant un modèle d'expression régulière SQL standard.
- escape_char
-
Expression de caractères qui utilise une séquence d’échappement pour les méta-caractères du modèle. La valeur par défaut est deux barres obliques inverses (’\\ »).
Si pattern ne contient pas de méta-caractères, le modèle représente uniquement la chaîne elle-même.
L'une ou l'autre des expressions de caractères peut être CHAR un ou VARCHAR plusieurs types de données. En cas de différence, Amazon Redshift convertit pattern au type de données de l’expression.
SIMILARTO prend en charge les métacaractères de correspondance de modèles suivants :
Opérateur | Description |
---|---|
% |
Met en correspondance une séquence de zéro ou plusieurs caractères. |
_ |
Met en correspondance un seul caractère. |
| |
Indique une alternative (l’une ou l’autre des deux possibilités). |
* |
Répétez l’élément précédent zéro ou plusieurs fois. |
+ |
Répétez l’élément précédent une ou plusieurs fois. |
? |
Répétez l’élément précédent zéro ou une fois. |
{m} |
Répétez l’élément précédent exactement m fois. |
{m,} |
Répétez l’élément précédent m ou plusieurs fois. |
{m,n} |
Répétez l’élément précédent au moins m fois et pas plus de n fois. |
() |
Placez entre parenthèses les éléments d’un groupe sous forme d’un seul élément logique. |
[...] |
Une expression entre crochets indique une classe de caractères, comme dans les expressions POSIX régulières. |
Exemples
Le tableau suivant présente des exemples de correspondance de modèles à l'aide SIMILAR de TO :
Expression | Renvoie |
---|---|
'abc' SIMILAR TO 'abc' |
True |
'abc' SIMILAR TO '_b_' |
True |
'abc' SIMILAR TO '_A_' |
False |
'abc' SIMILAR TO '%(b|d)%' |
True |
'abc' SIMILAR TO '(b|c)%' |
False |
'AbcAbcdefgefg12efgefg12' SIMILAR TO
'((Ab)?c)+d((efg)+(12))+' |
True |
'aaaaaab11111xy' SIMILAR TO 'a{6}_
[0-9]{5}(x|y){2}' |
True |
'$0.87' SIMILAR TO '$[0-9]+(.[0-9][0-9])?'
|
True |
L’exemple suivant recherche toutes les villes dont le nom contient « E » ou « H » :
SELECT DISTINCT city FROM users WHERE city SIMILAR TO '%E%|%H%' ORDER BY city LIMIT 5; city ----------------- Agoura Hills Auburn Hills Benton Harbor Beverly Hills Chicago Heights
L’exemple suivant utilise la chaîne d’échappement par défaut (« \\
») pour rechercher les chaînes qui incluent « _
» :
SELECT tablename, "column" FROM pg_table_def WHERE "column" SIMILAR TO '%start\\_%' ORDER BY tablename, "column" LIMIT 5; tablename | column --------------------------+--------------------- stcs_abort_idle | idle_start_time stcs_abort_idle | txn_start_time stcs_analyze_compression | start_time stcs_auto_worker_levels | start_level stcs_auto_worker_levels | start_wlm_occupancy
Les exemples suivants spécifient « ^
» comme caractère d’échappement, puis utilise le caractère d’échappement pour rechercher des chaînes qui incluent « _
» :
SELECT tablename, "column" FROM pg_table_def WHERE "column" SIMILAR TO '%start^_%' ESCAPE '^' ORDER BY tablename, "column" LIMIT 5; tablename | column --------------------------+--------------------- stcs_abort_idle | idle_start_time stcs_abort_idle | txn_start_time stcs_analyze_compression | start_time stcs_auto_worker_levels | start_level stcs_auto_worker_levels | start_wlm_occupancy