View a markdown version of this page

Condições de correspondência de padrões - Amazon Redshift

O Amazon Redshift deixará de oferecer suporte ao uso de UDFs em Python após 30 de junho de 2026. Começaremos a aplicar essa alteração em fases. Consulte mais informações sobre os detalhes do fim da vida útil do Python e as opções de migração na publicação do blog publicada em 30 de junho de 2025.

Condições de correspondência de padrões

Um operador de correspondência de padrões busca uma string para um padrão especificado na expressão condicional e retorna verdadeiro ou falso, dependendo da localização ou não de uma correspondência. O Amazon Redshift usa três métodos para correspondência de padrão:

  • Expressões LIKE

    O operador LIKE compara uma expressão de string, tal como um nome de coluna, a um padrão que usa os caracteres curinga % (por cento) e _ (sublinhado). A correspondência de padrão LIKE sempre abrange toda a string. LIKE executa uma correspondência com diferenciação entre letras maiúsculas e minúsculas e ILIKE executa uma correspondência sem diferenciação entre maiúsculas e minúsculas.

  • Expressões regulares SIMILAR TO

    O operador SIMILAR TO faz a correspondência de uma string com um padrão de expressão regular SQL, o que pode incluir um conjunto de metacaracteres de correspondência de padrão que inclui os dois compatíveis com o operador LIKE. SIMILAR TO corresponde toda a string e executa uma correspondência com diferenciação entre letras maiúsculas e minúsculas.

  • Expressões regulares estilo POSIX

    As expressões regulares POSIX fornecem uma forma mais poderosa para a correspondência de padrão do que os operadores LIKE e SIMILAR TO. Os padrões de expressão regular POSIX podem fazer a correspondência de qualquer parte da string e executam uma correspondência com diferenciação entre maiúsculas e minúsculas.

A correspondência de expressões regular usando operadores SIMILAR TO e POSIX é 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%';