SnowConvert AI - RedShift - Condições¶
BETWEEN¶
Descrição¶
Uma condição
BETWEENtesta expressões para inclusão em um intervalo de valores, usando as palavras-chaveBETWEENeAND. (Condição BETWEEN de referência da linguagem Redshift SQL)
Sintaxe da gramática¶
Observação
Essa função é totalmente suportada pelo Snowflake.
Amostra de padrões da origem¶
Tabela de configuração¶
Redshift¶
Snowflake¶
Código de entrada:¶
Redshift¶
Resultados¶
count |
|---|
8 |
id |
price |
departmentid |
saledate |
|---|---|---|---|
id |
price |
departmentid |
saledate |
|---|---|---|---|
1 |
5000 |
1 |
2008-01-01 |
2 |
8000 |
1 |
2018-01-01 |
3 |
5000 |
2 |
2010-01-01 |
4 |
7000 |
3 |
2010-01-01 |
5 |
5000 |
1 |
2018-01-01 |
6 |
4000 |
4 |
2010-01-01 |
7 |
3000 |
4 |
2018-01-01 |
8 |
9000 |
5 |
2008-01-01 |
9 |
7000 |
5 |
2018-01-01 |
10 |
6000 |
5 |
2006-01-01 |
11 |
5000 |
5 |
2008-01-01 |
12 |
5000 |
4 |
2018-01-01 |
13 |
8000 |
3 |
2006-01-01 |
14 |
7000 |
3 |
2016-01-01 |
15 |
2000 |
2 |
2018-01-01 |
id |
price |
departmentid |
saledate |
|---|---|---|---|
3 |
5000 |
2 |
2010-01-01 |
4 |
7000 |
3 |
2010-01-01 |
6 |
4000 |
4 |
2010-01-01 |
14 |
7000 |
3 |
2016-01-01 |
Código de saída:¶
Snowflake¶
Resultados¶
count |
|---|
8 |
id |
price |
departmentid |
saledate |
|---|---|---|---|
id |
price |
departmentid |
saledate |
|---|---|---|---|
1 |
5000 |
1 |
2008-01-01 |
2 |
8000 |
1 |
2018-01-01 |
3 |
5000 |
2 |
2010-01-01 |
4 |
7000 |
3 |
2010-01-01 |
5 |
5000 |
1 |
2018-01-01 |
6 |
4000 |
4 |
2010-01-01 |
7 |
3000 |
4 |
2018-01-01 |
8 |
9000 |
5 |
2008-01-01 |
9 |
7000 |
5 |
2018-01-01 |
10 |
6000 |
5 |
2006-01-01 |
11 |
5000 |
5 |
2008-01-01 |
12 |
5000 |
4 |
2018-01-01 |
13 |
8000 |
3 |
2006-01-01 |
14 |
7000 |
3 |
2016-01-01 |
15 |
2000 |
2 |
2018-01-01 |
id |
price |
departmentid |
saledate |
|---|---|---|---|
3 |
5000 |
2 |
2010-01-01 |
4 |
7000 |
3 |
2010-01-01 |
6 |
4000 |
4 |
2010-01-01 |
14 |
7000 |
3 |
2016-01-01 |
Problemas conhecidos ¶
Não foram encontrados problemas.
Condição de comparação¶
Condições
Descrição ¶
As condições de comparação declaram relações lógicas entre dois valores. Todas as condições de comparação são operadores binários com um tipo de retorno booleano.#x20;
Sintaxe da gramática ¶
O Redshift suporta os operadores de comparação descritos na tabela a seguir:
| Operator | Syntax | Description |
|---|---|---|
| < | a < b | Value a is less than value b. |
| > | a > b | Value a is greater than value b. |
| <= | a <= b | Value a is less than or equal to value b. |
| >= | a >= b | Value a is greater than or equal to value b. |
| = | a = b | Value a is equal to value b. |
| <> | != | a <> b | a != b | Value a is not equal to value b. |
| ANY | SOME | a = ANY(subquery) | Value a is equal to any value returned by the subquery. |
| ALL | a <> ALL or != ALL (subquery) | Value a is not equal to any value returned by the subquery. |
| IS TRUE | FALSE | UNKNOWN | a IS TRUE | Value a is Boolean TRUE. |
Uso de operadores de comparação em cadeias de caracteres¶
É importante observar que, no Redshift, os operadores de comparação em cadeias de caracteres ignoram os espaços em branco à direita. Para replicar esse comportamento no Snowflake, a transformação aplica a função RTRIM para remover os espaços finais, garantindo uma funcionalidade equivalente. Para obter mais informações: Significado dos espaços em branco finais
Tabela de conversão¶
A maioria dos operadores é diretamente suportada pelo Snowflake; no entanto, os operadores a seguir exigem transformação:
| Redshift | Snowflake | Comments |
|---|---|---|
| (expression) IS TRUE | expression | Condition is TRUE. |
| (expression) IS FALSE | NOT (expression) | Condition is FALSE. |
| (expression) IS UNKNOWN | expression IS NULL | Expression evaluates to NULL (same as UNKNOWN). |
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Resultados¶
id |
value |
status |
category |
|---|---|---|---|
1 |
50 |
true |
A |
id |
value |
status |
category |
|---|---|---|---|
1 |
50 |
true |
A |
3 |
40 |
nulo |
C |
5 |
60 |
falso |
B |
id |
value |
status |
category |
|---|---|---|---|
1 |
50 |
true |
A |
4 |
70 |
true |
A |
id |
value |
status |
category |
|---|---|---|---|
3 |
40 |
nulo |
C |
id |
value |
status |
category |
|---|---|---|---|
1 |
50 |
true |
A |
4 |
70 |
true |
A |
id |
value |
status |
category |
|---|---|---|---|
2 |
30 |
falso |
B |
4 |
40 |
nulo |
C |
5 |
60 |
falso |
B |
id |
value |
status |
category |
|---|---|---|---|
1 |
50 |
true |
A |
4 |
70 |
true |
A |
id |
value |
status |
category |
|---|---|---|---|
2 |
30 |
falso |
B |
5 |
60 |
falso |
B |
id |
value |
status |
category |
|---|---|---|---|
4 |
40 |
nulo |
C |
Código de saída:
Snowflake¶
Resultados¶
id |
value |
status |
category |
|---|---|---|---|
1 |
50 |
true |
A |
id |
value |
status |
category |
|---|---|---|---|
1 |
50 |
true |
A |
3 |
40 |
nulo |
C |
5 |
60 |
falso |
B |
id |
value |
status |
category |
|---|---|---|---|
1 |
50 |
true |
A |
4 |
70 |
true |
A |
id |
value |
status |
category |
|---|---|---|---|
3 |
40 |
nulo |
C |
id |
value |
status |
category |
|---|---|---|---|
1 |
50 |
true |
A |
4 |
70 |
true |
A |
id |
value |
status |
category |
|---|---|---|---|
2 |
30 |
falso |
B |
4 |
40 |
nulo |
C |
5 |
60 |
falso |
B |
id |
value |
status |
category |
|---|---|---|---|
1 |
50 |
true |
A |
4 |
70 |
true |
A |
id |
value |
status |
category |
|---|---|---|---|
2 |
30 |
falso |
B |
5 |
60 |
falso |
B |
id |
value |
status |
category |
|---|---|---|---|
4 |
40 |
nulo |
C |
Problemas conhecidos¶
Não foram encontrados problemas.
EWIs relacionados¶
Não há problemas conhecidos.
EXISTS¶
Descrição¶
Condições EXISTS testam a existência de linhas em uma subconsulta e retornam verdadeiro se uma subconsulta retornar pelo menos uma linha. Se NOT for especificado, a condição retornará verdadeiro se uma subconsulta não retornar nenhuma linha. (Condição EXISTS de referência da linguagem Redshift SQL)
Sintaxe da gramática¶
Observação
Essa função é totalmente suportada pelo Snowflake.
Amostra de padrões da origem¶
Tabela de configuração¶
Código de entrada:¶
Redshift¶
Resultados¶
ID |
NAME |
LASTNAME |
|---|---|---|
1 |
name1 |
lastname1 |
2 |
name2 |
NULL |
3 |
name3 |
lastname3 |
4 |
name4 |
NULL |
Código de saída:¶
Snowflake¶
Resultados¶
ID |
NAME |
LASTNAME |
|---|---|---|
1 |
name1 |
lastname1 |
2 |
name2 |
NULL |
3 |
name3 |
lastname3 |
4 |
name4 |
NULL |
EWIs relacionados¶
Sem EWIs relacionados.
Problemas conhecidos ¶
Não foram encontrados problemas.
IN¶
Descrição¶
Uma condição IN testa um valor para associação em um conjunto de valores ou em uma subconsulta. (Condição IN de referência da linguagem Redshift SQL)
Sintaxe da gramática¶
Observação
Essa função é totalmente suportada pelo Snowflake.
Amostra de padrões da origem¶
Tabela de configuração¶
Redshift¶
Snowflake¶
Código de entrada:¶
Redshift¶
Resultados¶
ID |
PRICE |
SALEDATE |
|---|---|---|
2 |
4000 |
2024-12-18 |
3 |
2000 |
2024-12-17 |
VALIDID |
|---|
TRUE |
R1 |
R2 |
|---|---|
TRUE |
FALSE |
TRUE |
TRUE |
Código de saída:¶
Snowflake¶
Resultados¶
ID |
PRICE |
SALEDATE |
|---|---|---|
2 |
4000 |
2024-12-18 |
3 |
2000 |
2024-12-17 |
VALIDID |
|---|
TRUE |
R1 |
R2 |
|---|---|
TRUE |
FALSE |
TRUE |
TRUE |
EWIs relacionados¶
Sem EWIs relacionados.
Problemas conhecidos ¶
Não foram encontrados problemas.
Condições lógicas¶
Descrição ¶
As condições lógicas combinam o resultado de duas condições para produzir um único resultado. Todas as condições lógicas são operadores binários com um tipo de retorno booliano. (Condições lógicas de referência da linguagem Redshift SQL).
Observação
Essa gramática é totalmente compatível com o Snowflake.
Sintaxe da gramática ¶
E1 |
E2 |
E1 AND E2 |
E1 OR E2 |
NOT E2 |
|---|---|---|---|---|
TRUE |
TRUE |
TRUE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
TRUE |
TRUE |
UNKNOWN |
UNKNOWN |
TRUE |
UNKNOWN |
FALSE |
TRUE |
FALSE |
TRUE |
|
FALSE |
FALSE |
FALSE |
FALSE |
|
FALSE |
UNKNOWN |
FALSE |
UNKNOWN |
|
UNKNOWN |
TRUE |
UNKNOWN |
TRUE |
|
UNKNOWN |
FALSE |
FALSE |
UNKNOWN |
|
UNKNOWN |
UNKNOWN |
UNKNOWN |
UNKNOWN |
Amostra de padrões da origem¶
Dados de configuração¶
Redshift¶
Código de entrada:¶
Redshift¶
Resultados¶
| EMPLOYEE_ID | IS_ACTIVE_ENGINEERING | HR_OR_HIGH_SALARY | IS_INACTIVE | HIRE_DATE_MISSING | LOW_SALARY_OR_NO_SALARY |
|---|---|---|---|---|---|
| 1 | TRUE | TRUE | FALSE | FALSE | FALSE |
| 2 | FALSE | TRUE | TRUE | FALSE | FALSE |
| 3 | FALSE | FALSE | NULL | FALSE | FALSE |
| 4 | TRUE | TRUE | FALSE | TRUE | FALSE |
| 5 | FALSE | NULL | FALSE | FALSE | TRUE |
Código de saída:
Snowflake¶
Resultados¶
| EMPLOYEE_ID | IS_ACTIVE_ENGINEERING | HR_OR_HIGH_SALARY | IS_INACTIVE | HIRE_DATE_MISSING | LOW_SALARY_OR_NO_SALARY |
|---|---|---|---|---|---|
| 1 | TRUE | TRUE | FALSE | FALSE | FALSE |
| 2 | FALSE | TRUE | TRUE | FALSE | FALSE |
| 3 | FALSE | FALSE | NULL | FALSE | FALSE |
| 4 | TRUE | TRUE | FALSE | TRUE | FALSE |
| 5 | FALSE | NULL | FALSE | FALSE | TRUE |
Problemas conhecidos¶
Não foram encontrados problemas.
EWIs relacionados¶
Não há problemas conhecidos.
NULL¶
Descrição¶
A condição nula testa a existência de nulos, quando um valor está ausente ou é desconhecido. (Condição NULL de referência da linguagem Redshift SQL)
Sintaxe da gramática¶
Observação
Essa função é totalmente suportada pelo Snowflake.
Amostra de padrões da origem¶
Tabela de configuração¶
Redshift¶
Snowflake¶
Código de entrada:¶
Redshift¶
Resultados¶
ID |
NAME |
LASTNAME |
|---|---|---|
2 |
name2 |
NULL |
4 |
name4 |
NULL |
Código de saída:¶
Snowflake¶
Resultados¶
ID |
NAME |
LASTNAME |
|---|---|---|
2 |
name2 |
NULL |
4 |
name4 |
NULL |
Problemas conhecidos ¶
Não foram encontrados problemas.
EWIs relacionados¶
Sem EWIs relacionados.
Condições de correspondência de padrões¶
Descrição ¶
Um operador de correspondência de padrão pesquisa uma cadeia de caracteres em busca de um padrão especificado na expressão condicional e retorna verdadeiro ou falso, dependendo do fato de encontrar uma correspondência. O Amazon Redshift usa três métodos para a correspondência de padrões:
Expressões LIKE O operador LIKE compara uma expressão de cadeia de caracteres, como o nome de uma coluna, com um padrão que usa os caracteres curinga
%(porcentagem) e_(sublinhado). A correspondência de padrões LIKE sempre abrange a cadeia de caracteres inteira. LIKE faz uma correspondência que diferencia maiúsculas de minúsculas e ILIKE faz uma correspondência que diferencia minúsculas de minúsculas.Expressões regulares SIMILAR TO O operador SIMILAR TO faz a correspondência de uma expressão de cadeia de caracteres com um padrão de expressão regular padrão SQL, que pode incluir um conjunto de metacaracteres de correspondência de padrões que inclui os dois suportados pelo operador LIKE. SIMILAR TO corresponde a toda a cadeia de caracteres e faz uma correspondência com distinção entre maiúsculas e minúsculas.
POSIX-style regular expressions As expressões regulares POSIX oferecem um meio mais avançado de correspondência de padrões do que os operadores LIKE e SIMILAR TO. Padrões de expressão regular POSIX podem corresponder a qualquer parte da cadeia de caracteres e realizam uma correspondência com distinção entre maiúsculas e minúsculas. (Condições de correspondência de padrões de referência da linguagem Redshift SQL).
Problemas conhecidos¶
No Snowflake, o comportamento de cenários como (
LIKE,SIMILARTO, eoperadores POSIX) pode variar quando a coluna é do tipo CHAR. Por exemplo:
Código¶
Resultados do RedShift¶
like(CHAR(10)) |
like(VARCHAR(10)) |
|---|---|
FALSE |
TRUE |
TRUE |
TRUE |
FALSE |
TRUE |
Resultados do Snowflake¶
like(CHAR(10)) |
like(VARCHAR(10)) |
|---|---|
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
Parece que, como CHAR(10) é de «comprimento fixo», ele supõe que o padrão “%1” deve corresponder a um “1” na 10ª posição de uma coluna CHAR(10). No entanto, no Snowflake, ele corresponde se houver um “1” na cadeia de caracteres, com qualquer sequência de zero ou mais caracteres antes dele.
LIKE¶
Condições de correspondência de padrões
Descrição ¶
O operador LIKE compara uma expressão de cadeia de caracteres, como o nome de uma coluna, com um padrão que usa os caracteres curinga % (porcentagem) e _ (sublinhado). A correspondência de padrões LIKE sempre abrange a cadeia de caracteres inteira. Para corresponder a uma sequência em qualquer lugar de uma cadeia de caracteres, o padrão deve começar e terminar com um sinal de porcentagem. (LIKE de referência da linguagem Redshift SQL).
Observação
Essa sintaxe é totalmente suportada no Snowflake.
Nota
No Snowflake, nos casos em que o caractere de escape não for fornecido, o caractere de escape padrão do Redshift '\\' será adicionado para equivalência total.
Sintaxe da gramática ¶
Amostra de padrões da origem¶
Dados de configuração¶
Redshift¶
Like¶
Código de entrada:¶
Redshift¶
Resultados¶
NAME |
|---|
Joe Doe |
Joe Doe |
Joe Doe |
Joe Doe |
John Dddoe |
Código de saída:
Snowflake¶
Resultados¶
NAME |
|---|
Joe Doe |
Joe Doe |
Joe Doe |
Joe Doe |
John Dddoe |
Not like¶
Código de entrada:¶
Redshift¶
Resultados¶
NAME |
|---|
100% |
1000 times |
Elaine |
Joe down |
John_down |
Código de saída:
Snowflake¶
Resultados¶
NAME |
|---|
100% |
1000 times |
Elaine |
Joe down |
John_down |
Caracteres de escape¶
Código de entrada:¶
Redshift¶
Resultados¶
NAME |
|---|
John_down |
NAME |
|---|
100% |
Código de saída:
Snowflake¶
Resultados¶
NAME |
|---|
John_down |
NAME |
|---|
100% |
ILike¶
Código de entrada:¶
Redshift¶
Resultados¶
R1 |
R2 |
|---|---|
FALSE |
TRUE |
Código de saída:
Snowflake¶
Resultados¶
R1 |
R2 |
|---|---|
FALSE |
TRUE |
Operadores¶
Os operadores a seguir são convertidos da seguinte forma:
Redshift |
Snowflake |
|---|---|
~~ |
LIKE |
!~~ |
NOT LIKE |
~~* |
ILIKE |
!~~* |
NOT ILIKE |
Código de entrada:¶
Redshift¶
Resultados¶
R1 |
R2 |
R3 |
R4 |
|---|---|---|---|
TRUE |
FALSE |
TRUE |
FALSE |
Código de saída:
Snowflake¶
Resultados¶
R1 |
R2 |
R3 |
R4 |
|---|---|---|---|
TRUE |
FALSE |
TRUE |
FALSE |
Problemas conhecidos¶
The behavior of fixed char types may differ. See Known issues for more information.
EWIs relacionados¶
Não há problemas conhecidos.
Operadores POSIX¶
Condições de correspondência de padrões
Descrição ¶
Uma expressão regular POSIX é uma sequência de caracteres que especifica um padrão de correspondência. Uma cadeia de caracteres corresponde a uma expressão regular se for um membro do conjunto regular descrito pela expressão regular. Padrões de expressão regular POSIX podem corresponder a qualquer parte de uma cadeia de caracteres. (Operadores POSIX de referência da linguagem Redshift SQL).
Aviso
Essa gramática é parcialmente compatível com o Snowflake. Os operadores POSIX são transformados em REGEXP_COUNT no Snowflake.
Sintaxe da gramática ¶
Metacaracteres de correspondência de padrões POSIX¶
A correspondência de padrões POSIX suporta os seguintes metacaracteres (todos os casos são suportados no Snowflake):
POSIX |
Descrição |
|---|---|
. |
Corresponde a qualquer caractere único. |
|
Corresponde a zero ou mais ocorrências. |
|
Corresponde a uma ou mais ocorrências. |
|
Corresponde a zero ou uma ocorrência. |
|
Especifica correspondências alternativas. |
|
Corresponde ao caractere de início de linha. |
|
Corresponde ao caractere de fim de linha. |
|
Corresponde ao final da cadeia de caracteres. |
[ ] |
Os colchetes especificam uma lista de correspondência, que deve corresponder a uma expressão da lista. |
|
Os parênteses agrupam itens em um único item lógico. |
|
Repita o item anterior exatamente m vezes. |
|
Repita o item anterior m ou mais vezes. |
|
Repita o item anterior pelo menos m e não mais que n vezes. |
|
Corresponde a qualquer caractere dentro de uma classe de caracteres POSIX. Nas classes de caracteres a seguir, o Amazon Redshift suporta apenas os caracteres ASCII, assim como o Snowflake: |
Os parâmetros “m” (ativa o modo de várias linhas) e “s” (permite que o caractere curinga POSIX . corresponda a novas linhas) são usados para obter equivalência total no Snowflake. Para obter mais informações, consulte Especificando os parâmetros para a expressão regular no Snowflake.
Amostra de padrões da origem¶
Dados de configuração¶
Redshift¶
. : Corresponde a qualquer caractere¶
Código de entrada:¶
Redshift¶
Resultados¶
ID |
COLUMN_NAME |
|---|---|
1 |
abc123 hello world |
3 |
123abc another line abc123 |
11 |
abc123 abc456 abc789 |
Código de saída:
Snowflake¶
Resultados¶
ID |
COLUMN_NAME |
|---|---|
1 |
abc123 hello world |
3 |
123abc another line abc123 |
11 |
abc123 abc456 abc789 |
* : Corresponde a zero ou mais ocorrências.¶
Código de entrada:¶
Redshift¶
Resultados¶
ID |
COLUMN_NAME |
|---|---|
1 |
abc123 hello world |
3 |
123abc another line abc123 |
6 |
a@b#c! more text here |
7 |
alpha beta gamma |
11 |
abc123 abc456 abc789 |
Código de saída:
Snowflake¶
Resultados¶
ID |
COLUMN_NAME |
|---|---|
1 |
abc123 hello world |
3 |
123abc another line abc123 |
6 |
a@b#c! more text here |
7 |
alpha beta gamma |
11 |
abc123 abc456 abc789 |
? : Corresponde a zero ou uma ocorrência.¶
Código de entrada:¶
Redshift¶
Resultados¶
ID |
COLUMN_NAME |
|---|---|
2 |
test string with multiple lines in this entry |
4 |
line1 line2 line3 |
5 |
start middle end |
8 |
uppercase lowercase |
9 |
line1 line2 line3 line4 |
10 |
1234567890 more digits |
12 |
start end middle |
13 |
this is the first line this is the second line |
14 |
caracteres especiais !@#$%^&*() |
Código de saída:
Snowflake¶
Resultados¶
ID |
COLUMN_NAME |
|---|---|
2 |
test string with multiple lines in this entry |
4 |
line1 line2 line3 |
5 |
start middle end |
8 |
uppercase lowercase |
9 |
line1 line2 line3 line4 |
10 |
1234567890 more digits |
12 |
start end middle |
13 |
this is the first line this is the second line |
14 |
caracteres especiais !@#$%^&*() |
^ : Corresponde ao caractere de início de linha¶
Código de entrada:¶
Redshift¶
Resultados¶
ID |
COLUMN_NAME |
|---|---|
1 |
abc123 hello world |
3 |
123abc another line abc123 |
11 |
abc123 abc456 abc789 |
Código de saída:
Snowflake¶
Resultados¶
ID |
COLUMN_NAME |
|---|---|
1 |
abc123 hello world |
3 |
123abc another line abc123 |
11 |
abc123 abc456 abc789 |
$ : Corresponde ao final da cadeia de caracteres.¶
Código de entrada:¶
Redshift¶
Resultados¶
ID |
COLUMN_NAME |
|---|---|
2 |
test string with multiple lines in this entry |
4 |
line1 line2 line3 |
5 |
start middle end |
6 |
a@b#c! more text here |
7 |
alpha beta gamma |
8 |
uppercase lowercase |
9 |
line1 line2 line3 line4 |
10 |
1234567890 more digits |
12 |
start end middle |
13 |
this is the first line this is the second line |
14 |
caracteres especiais !@#$%^&*() |
Código de saída:
Snowflake¶
Resultados¶
ID |
COLUMN_NAME |
|---|---|
2 |
test string with multiple lines in this entry |
4 |
line1 line2 line3 |
5 |
start middle end |
6 |
a@b#c! more text here |
7 |
alpha beta gamma |
8 |
uppercase lowercase |
9 |
line1 line2 line3 line4 |
10 |
1234567890 more digits |
12 |
start end middle |
13 |
this is the first line this is the second line |
14 |
caracteres especiais !@#$%^&*() |
Uso de colunas de agrupamento¶
Argumentos com especificações COLLATE não são compatíveis atualmente com a função RLIKE. Como resultado, a cláusula COLLATE deve ser desativada para usar essa função. No entanto, isso pode levar a diferenças nos resultados.
Código de entrada:¶
Redshift¶
Resultados¶
CI |
CS |
|---|---|
TRUE |
FALSE |
Código de saída:
Snowflake¶
Resultados¶
CI |
CS |
|---|---|
FALSE |
FALSE |
Se precisar de equivalência para esses cenários, poderá adicionar manualmente os seguintes parâmetros à função para obter equivalência funcional:
Parâmetro |
Descrição |
|---|---|
|
Correspondência com distinção entre maiúsculas e minúsculas |
|
Correspondência sem distinção entre maiúsculas e minúsculas |
Problemas conhecidos¶
Problemas conhecidos¶
The behavior of fixed char types may differ. See Known issues for more information.
Argumentos com especificações COLLATE não são compatíveis no momento com a função REGEXP_COUNT.
EWIs relacionados¶
SSC-FDM-PG0011: O uso da restrição de coluna COLLATE foi desativado para essa condição de correspondência de padrões.
SIMILAR TO¶
Condições de correspondência de padrões
Descrição ¶
O operador SIMILAR TO faz a correspondência de uma expressão de cadeia de caracteres, como o nome de uma coluna, com um padrão de expressão regular padrão SQL. Um padrão de expressão regular SQL pode incluir um conjunto de metacaracteres de correspondência de padrões, inclusive os dois suportados pelo operador LIKE. (SIMILAR TO de referência da linguagem Redshift SQL).
Sintaxe da gramática ¶
Metacaracteres de correspondência de padrões¶
| Redshift | Snowflake | Notes |
|---|---|---|
| ```{code} sql :force: % ``` | ```{code} sql :force: .* ``` | Matches any sequence of zero or more characters. To achieve full equivalence in Snowflake, we need to replace the '%' operator with '.*' in the pattern. |
| ```{code} sql :force: _ ``` | ```{code} sql :force: . ``` | Matches any single character. To achieve full equivalence in Snowflake, we need to replace the _ operator with . and add the s parameter to enable the POSIX wildcard character . to match newline characters. |
| ```{code} sql :force: | ``` | ```{code} sql :force: | ``` | Denotes alternation. This case is fully supported in Snowflake. |
| ```{code} sql :force: * ``` | ```{code} sql :force: * ``` | Repeat the previous item zero or more times. This can have a different behavior when newline characters are included. |
| ```{code} sql :force: + ``` | ```{code} sql :force: + ``` | Repeat the previous item one or more times. This can have a different behavior when newline characters are included. |
| ```{code} sql :force: ? ``` | ```{code} sql :force: ? ``` | Repeat the previous item zero or one time. This can have a different behavior when newline characters are included. |
| ```{code} sql :force: {m} ``` | ```{code} sql :force: {m} ``` | Repeat the previous item exactly m times and it is fully supported in Snowflake. |
| ```{code} sql :force: {m,} ``` | ```{code} sql :force: {m,} ``` | Repeat the previous item at least m and not more than n times and it is fully supported in Snowflake. |
| ```{code} sql :force: {m,n} ``` | ```{code} sql :force: {m,n} ``` | Repeat the previous item m or more times and it is fully supported in Snowflake. |
| ```{code} sql :force: () ``` | ```{code} sql :force: () ``` | Parentheses group items into a single logical item and it is fully supported in Snowflake. |
| ```{code} sql :force: [...] ``` | ```{code} sql :force: [...] ``` | A bracket expression specifies a character class, just as in POSIX regular expressions. |
Amostra de padrões da origem¶
Dados de configuração¶
Redshift¶
% : Matches any sequence of zero or more characters¶
Código de entrada:¶
Redshift¶
Resultados¶
COLUMN_NAME |
|---|
abc_123 |
abcc |
xyzabc |
abc cccc |
abc%def |
abc_xyz |
abc_1_xyz |
start%_abc |
abcs_123_xyz |
aabc123 |
Código de saída:
Snowflake¶
Resultados¶
COLUMN_NAME |
|---|
abc_123 |
abcc |
xyzabc |
abc cccc |
abc%def |
abc_xyz |
abc_1_xyz |
start%_abc |
abcs_123_xyz |
aabc123 |
_ : Corresponde a qualquer caractere único¶
Código de entrada:¶
Redshift¶
Resultados¶
COLUMN_NAME |
|---|
abc_123 |
a_cdef |
abcc |
abc cccc |
abc%def |
abc_xyz |
abc_1_xyz |
abcs_123_xyz |
Código de saída:
Snowflake¶
Resultados¶
COLUMN_NAME |
|---|
abc_123 |
a_cdef |
abcc |
abc cccc |
abc%def |
abc_xyz |
abc_1_xyz |
abcs_123_xyz |
| : Indica alternância¶
Código de entrada:¶
Redshift¶
Resultados¶
COLUMN_NAME |
|---|
bxyz |
banana |
Código de saída:
Snowflake¶
Resultados¶
COLUMN_NAME |
|---|
bxyz |
banana |
{m, n} : Repete o item anterior exatamente m vezes.¶
Código de entrada:¶
Redshift¶
Resultados¶
COLUMN_NAME |
|---|
abcc |
Código de saída:
Snowflake¶
Resultados¶
COLUMN_NAME |
|---|
abcc |
+ : Repeat the previous item one or more times¶
Código de entrada:¶
Redshift¶
Resultados¶
COLUMN_NAME |
|---|
abcc |
abc cccc |
Código de saída:
Snowflake¶
Resultados¶
COLUMN_NAME |
|---|
abcc |
* : Repete o item anterior zero ou mais vezes¶
Código de entrada:¶
Redshift¶
Resultados¶
COLUMN_NAME |
|---|
abcc |
abc cccc |
Código de saída:
Snowflake¶
Resultados¶
COLUMN_NAME |
|---|
abcc |
? : Repete o item anterior zero ou uma vez¶
Código de entrada:¶
Redshift¶
Resultados¶
COLUMN_NAME |
|---|
abcc |
abc ccc |
Código de saída:
Snowflake¶
Resultados¶
COLUMN_NAME |
|---|
abcc |
() : Os parênteses agrupam itens em um único item lógico¶
Código de entrada:¶
Redshift¶
Resultados¶
COLUMN_NAME |
|---|
abc_123 |
abcc |
xyzabc |
abc cccc |
abc%def |
abc_xyz |
abc_1_xyz |
abcs_123_xyz |
xyzxyz |
Código de saída:
Snowflake¶
Resultados¶
COLUMN_NAME |
|---|
abc_123 |
abcc |
xyzabc |
abc cccc |
abc%def |
abc_xyz |
abc_1_xyz |
abcs_123_xyz |
xyzxyz |
[…] : Especifica uma classe de caracteres¶
Código de entrada:¶
Redshift¶
Resultados¶
COLUMN_NAME |
|---|
abc_123 |
a_cdef |
bxyz |
abcc |
apple |
banana |
abc cccc |
abc%def |
abc_xyz |
abc_1_xyz |
applepie |
ab%_xyz |
abcs_123_xyz |
aabc123 |
Código de saída:
Snowflake¶
Resultados¶
COLUMN_NAME |
|---|
abc_123 |
a_cdef |
bxyz |
abcc |
apple |
banana |
abc cccc |
abc%def |
abc_xyz |
abc_1_xyz |
applepie |
ab%_xyz |
abcs_123_xyz |
aabc123 |
Caracteres de escape¶
Os caracteres a seguir serão escapados se aparecerem no padrão e não forem o próprio caractere de escape:
.
$
^
Código de entrada:¶
Redshift¶
Resultados¶
COLUMN_NAME |
|---|
abc_123 |
abc_xyz |
abc_1_xyz |
R1 |
|---|
TRUE |
Código de saída:
Snowflake¶
Resultados¶
COLUMN_NAME |
|---|
abc_123 |
abc_xyz |
abc_1_xyz |
R1 |
|---|
TRUE |
Padrão armazenado em uma variável¶
Se esses padrões forem armazenados em uma variável, os ajustes necessários para equivalência não serão aplicados. Você pode consultar as recomendações descritas na tabela Pattern-matching metacharacters no início deste documento para obter diretrizes adicionais de equivalência.
Código de entrada:¶
Redshift¶
Resultados¶
COLUMN_NAME |
|---|
abc_123 |
abcc |
xyzabc |
abc cccc |
abccc |
abc%def |
abc_xyz |
abc_1_xyz |
start%_abc |
abcs_123_xyz |
aabc123 |
123abc another line abc123 |
Código de saída:
Snowflake¶
Resultados¶
COLUMN_NAME |
|---|
A consulta não produziu resultados |
Uso de colunas de agrupamento¶
Argumentos com especificações COLLATE não são compatíveis atualmente com a função RLIKE. Como resultado, a cláusula COLLATE deve ser desativada para usar essa função. No entanto, isso pode levar a diferenças nos resultados.
Código de entrada:¶
Redshift¶
Resultados¶
CI |
CS |
|---|---|
TRUE |
FALSE |
Código de saída:
Snowflake¶
Resultados¶
CI |
CS |
|---|---|
FALSE |
FALSE |
Se precisar de equivalência para esses cenários, poderá adicionar manualmente os seguintes parâmetros à função para obter equivalência funcional:
Parâmetro |
Descrição |
|---|---|
|
Correspondência com distinção entre maiúsculas e minúsculas |
|
Correspondência sem distinção entre maiúsculas e minúsculas |
Problemas conhecidos¶
O comportamento dos tipos de caracteres fixos pode ser diferente.
A função
RLIKEusa expressões regulares estendidas POSIX, o que pode resultar em um comportamento diferente em determinados casos, especialmente quando há quebras de linha envolvidas. Parece que, quando há quebras de linha na cadeia de caracteres e ocorre uma correspondência em uma linha, ele retorna um resultado positivo para toda a cadeia, mesmo que a correspondência tenha ocorrido apenas em uma única linha e não em toda a cadeia. Por exemplo:
Código RedShift¶
Código do Snowflake¶
Resultados do RedShift¶
COL1 |
|---|
abcccc |
abc eab |
abc ccc |
Resultados do Snowflake¶
COL1 |
|---|
abcccc |
Para obter a máxima equivalência, algumas modificações são feitas nos operadores de padrão.#x20;
Se esses padrões forem armazenados em uma variável, o SnowConvert AI não aplica os ajustes necessários para equivalência.
Argumentos com especificações COLLATE não são compatíveis atualmente com a função RLIKE.
EWIs relacionados¶
SSC-FDM-0032: O parâmetro não é um valor literal, a transformação não pôde ser totalmente aplicada.
SSC-FDM-PG0011: O uso da restrição de coluna COLLATE foi desativado para essa condição de correspondência de padrões.