

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# SIMILAR TO
<a name="pattern-matching-conditions-similar-to"></a>

O operador SIMILAR TO faz a correspondências de uma expressão de string, tal como um nome de coluna, com um padrão de expressão regular SQL. Um padrão de expressão regular SQL pode incluir um conjunto de metacaracteres de correspondência padrão, incluindo os dois compatíveis com o operador [LIKE](r_patternmatching_condition_like.md). 

O operador SIMILAR TO retorna verdadeiro somente se seu padrão corresponder à string inteira, ao contrário do comportamento de expressão regular POSIX, onde o padrão pode corresponder a qualquer parte da string. 

SIMILAR TO executa uma correspondência com diferenciação entre maiúsculas e minúsculas. 

**nota**  
A correspondência de expressões regular usando SIMILAR TO é computacionalmente cara. Recomendamos usar LIKE sempre que possível, especialmente ao processar um número muito grande de linhas. Por exemplo, as seguintes consultas são funcionalmente idênticas, mas a consulta que usa LIKE é executada várias vezes mais rápido do que a consulta que usa uma expressão regular:  

```
select count(*) from event where eventname SIMILAR TO '%(Ring|Die)%'; 
select count(*) from event where eventname LIKE '%Ring%' OR eventname LIKE '%Die%';
```

## Sintaxe
<a name="pattern-matching-conditions-similar-to-synopsis"></a>

```
expression [ NOT ] SIMILAR TO pattern [ ESCAPE 'escape_char' ]
```

## Argumentos
<a name="pattern-matching-conditions-similar-to-arguments"></a>

 *expressão*   
Uma expressão de caractere UTF-8 válida, tal como um nome de coluna. 

SIMILAR TO  
SIMILAR to executa uma correspondência de padrão com diferenciação entre maiúsculas e minúsculas para toda a string na *expressão*. 

 *Padrão*   
Uma expressão válida de caractere UTF-8 que representa um padrão de expressão regular SQL. 

 *escape\$1char*   
Uma expressão de caractere que irá escapar metacaracteres no padrão. O padrão é duas barras invertidas ('\$1\$1'). 

Se o *padrão* não contém metacaracteres, o padrão representa somente a própria string.

Qualquer uma das expressões de caracteres pode ser de tipos de dados CHAR ou VARCHAR. Se eles forem diferentes, o Amazon Redshift converterá o *padrão* no tipo de dados da *expressão*. 

SIMILAR TO é compatível com os seguintes metacaracteres de correspondência de padrão: 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/dg/pattern-matching-conditions-similar-to.html)

## Exemplos
<a name="pattern-matching-conditions-similar-to-examples"></a>

A seguinte tabela mostra exemplos de correspondência de padrão usando SIMILAR TO:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/redshift/latest/dg/pattern-matching-conditions-similar-to.html)

O seguinte exemplo encontra cidades cujos nomes contêm "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
```

O seguinte exemplo usa a string de escape padrão ('`\\`') para pesquisar strings que contêm "`_`":

```
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
```

O seguinte exemplo especifica '`^`' como a string de escape e, então, usa a string de escape para pesquisar strings que contêm "`_`": 

```
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
```