SnowConvert AI – Teradata – Modos de sessão no Teradata¶
Descrição dos modos de sessão do Teradata¶
O banco de dados do Teradata tem diferentes modos de execução de consultas: modo ANSI (regras baseadas nas especificações ANSI SQL: 2011) e modo TERA (regras definidas pelo Teradata). Para obter mais informações, consulte a seguinte documentação do Teradata.
Modo Teradata para tabela informativa de cadeias de caracteres¶
Para cadeias de caracteres, o Modo Teradata funciona de forma diferente. Conforme explicado na tabela a seguir, com base na documentação do Teradata:
Recurso |
Modo ANSI |
Modo Teradata |
|---|---|---|
Atributo padrão para comparações de caracteres |
CASESPECIFIC |
NOT CASESPECIFIC |
Comportamento TRIM padrão |
TRIM(BOTH FROM) |
TRIM(BOTH FROM) |
Resumo da especificação da conversão¶
| Mode | Column constraint values | Teradata behavior | SC expected behavior |
|---|---|---|---|
| ANSI Mode | CASESPECIFIC | CASESPECIFIC | No constraint added. |
| NOT CASESPECIFIC | CASESPECIFIC | Add COLLATE 'en-cs' in column definition. | |
| Teradata Mode | CASESPECIFIC | CASESPECIFIC | In most cases, do not add COLLATE, and convert its usages of string comparison to RTRIM( expression ) |
| NOT CASESPECIFIC | NOT CASESPECIFIC | In most cases, do not add COLLATE, and convert its usages of string comparison to RTRIM(UPPER( expression )) |
Opções de especificação de conversão disponíveis¶
Modo ANSI para comparação de cadeia de caracteres - COLLATE¶
Esta seção define a especificação de tradução para uma cadeia de caracteres no modo ANSI com o uso de COLLATE.
Descrição ¶
Modo ANSI para comparação de cadeia de caracteres e uso de COLLATE¶
A comparação de cadeia de caracteres no modo ANSI aplicará a restrição COLLATE às colunas ou instruções, conforme necessário. O comportamento de corte da especificação de maiúsculas e minúsculas padrão pode ser levado em consideração.
Observe que, no Teradata, a especificação de maiúsculas e minúsculas padrão é “CASESPECIFIC”, o mesmo padrão que no Snowflake “case-sensitive'. Portanto, esses casos não serão convertidos com um COLLATE porque serão redundantes.
Amostra de padrões de origem ¶
Dados de configuração¶
Teradata¶
Snowflake¶
Operação de comparação¶
Caso 1: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
Caso 2: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Human resources |
2 |
John |
SNOW |
Engenharia |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Human resources |
2 |
John |
SNOW |
Engenharia |
Caso 3: Coluna CAST NOT CASESPECIFIC para CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
Snowflake¶
Nota
COLLATE “en-cs” é necessário para a equivalência funcional.
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
Caso 4: Coluna CAST CASESPECIFIC para NOT CASESPECIFIC e o modo do banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
|
7 |
GEORGE |
salEs |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
|
7 |
GEORGE |
salEs |
Caso 5: Coluna CAST NOT CASESPECIFIC para NOT CASESPECIFIC e o modo do banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
Snowflake¶
Nota
É necessário COLLATE.
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
Operação LIKE¶
Caso 1: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
Caso 2: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
2 |
John |
SNOW |
Engenharia |
3 |
WIlle |
SNOW |
Human resources |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
2 |
John |
SNOW |
Engenharia |
3 |
WIlle |
SNOW |
Human resources |
Caso 3: Coluna CAST NOT CASESPECIFIC para CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
5 |
Mary |
SaleS |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
5 |
Mary |
SaleS |
Caso 4: Coluna CAST CASESPECIFIC para NOT CASESPECIFIC e o modo do banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
2 |
John |
SNOW |
Engenharia |
3 |
WIlle |
SNOW |
Human resources |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
2 |
John |
SNOW |
Engenharia |
3 |
WIlle |
SNOW |
Human resources |
Operação IN¶
Caso 1: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
Snowflake¶
Nota
Esse caso requer COLLATE(_ column_name_ , 'en-cs-rtrim')
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
Caso 2: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Nota
Nesse caso, a coluna não tem uma restrição de coluna, mas a restrição padrão no modo Teradata ANSI é CASESPECIFIC.
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
4 |
Marco |
SnoW |
EngineerinG |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
4 |
Marco |
SnoW |
EngineerinG |
Cláusula ORDER BY¶
Caso 1: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
first_name |
|---|
GeorgE |
GEORGE |
GEORGE |
George |
John |
JOHN |
JOHN |
Marco |
Mary |
WIlle |
Snowflake¶
Aviso
Consulte FDM. _ Pendente para adicionar. _
Consulta¶
Saída¶
first_name |
|---|
GeorgE |
George |
GEORGE |
GEORGE |
John |
JOHN |
JOHN |
Marco |
Mary |
WIlle |
Caso 2: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
department |
|---|
EngineerinG |
Engenharia |
Finance |
Human resources |
IT |
SalEs |
SaleS |
Vendas |
salEs |
sales |
Snowflake¶
Consulta¶
Saída¶
department |
|---|
EngineerinG |
Engenharia |
Finance |
Human resources |
IT |
SalEs |
SaleS |
Vendas |
salEs |
sales |
Cláusula GROUP BY¶
Caso 1: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
first_name |
|---|
Mary |
GeorgE |
WIlle |
JOHN |
Marco |
GEORGE |
Snowflake¶
Aviso
O caso ou a ordem pode diferir na saída.
Nota
RTRIM é necessário em colunas selecionadas.
Consulta¶
Saída¶
first_name |
|---|
John |
Marco |
George |
GeorgE |
WIlle |
Mary |
Caso 2: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
last_name |
|---|
SnoW |
SNOW |
SnoW |
Snow |
snow |
Snowflake¶
Nota
A ordem pode ser diferente.
Consulta¶
Saída¶
first_name |
|---|
Snow |
SNOW |
SnoW |
SnoW |
snow |
Cláusula HAVING¶
A cláusula HAVING usará os padrões em:
Operações de avaliação.
Por exemplo:
=, !=, <, >.
Operação LIKE.
Operação IN.
Operação CAST para avaliação.
Operação CAST para LIKE.
O exemplo a seguir mostra um padrão com operação de avaliação.
Amostra: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
Snowflake¶
Consulta¶
Saída¶
Instrução CASEWHEN¶
A instrução CASE WHEN usará os padrões descritos em:
Operações de avaliação.
Por exemplo:
=, !=, <, >.
Operação LIKE.
Operação IN.
Operação CAST para avaliação.
Operação CAST para LIKE.
O exemplo a seguir mostra um padrão com operação de avaliação.
Teradata¶
Consulta¶
Saída¶
first_name |
last_name |
department_full_name |
|---|---|---|
GEORGE |
Outros |
|
Mary |
Outros |
|
GeorgE |
GLOBAL SALES |
|
GEORGE |
Outros |
Snowflake¶
Consulta¶
Saída¶
first_name |
last_name |
department_full_name |
|---|---|---|
Mary |
Outros |
|
GEORGE |
Outros |
|
GEORGE |
Outros |
|
GeorgE |
GLOBAL SALES |
Cláusula JOIN¶
Aviso
Há suporte para cenários simples com operações de avaliação.
A instrução JOIN usará os padrões descritos em:
Operações de avaliação.
Por exemplo:
=, !=, <, >.
Operação LIKE.
Operação IN.
Operação CAST para avaliação.
Operação CAST para LIKE.
O exemplo a seguir mostra um padrão com operação de avaliação.
Amostra: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department_name |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
10 |
JOHN |
snow |
Finance |
Snowflake¶
Nota
d.department_name é NOT CASESPECIFIC, portanto, requer COLLATE.
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department_name |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
10 |
JOHN |
snow |
Finance |
Modo ANSI para comparação de cadeia de caracteres - NOCOLLATE¶
Esta seção define a especificação de tradução para uma cadeia de caracteres no modo ANSI sem o uso de COLLATE.
Descrição ¶
ANSI mode for string comparison and NO COLLATE usages.¶
A comparação de cadeia de caracteres no modo ANSI sem o uso de COLLATE aplicará RTRIM e UPPER conforme necessário. O comportamento padrão do trim da especificação de caso pode ser levado em conta, portanto, se uma coluna não tiver uma especificação de caso no modo Teradata ANSI, o Teradata terá como padrão CASESPECIFIC.
Amostra de padrões de origem ¶
Dados de configuração¶
Teradata¶
Snowflake¶
Operação de comparação¶
Caso 1: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
Caso 2: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Human resources |
2 |
John |
SNOW |
Engenharia |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Human resources |
2 |
John |
SNOW |
Engenharia |
Caso 3: Coluna CAST NOT CASESPECIFIC para CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Aviso
O (CASESPECIFIC) substitui a restrição de coluna na definição da tabela.
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
6 |
GEORGE |
sales |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
6 |
GEORGE |
sales |
Caso 4: Coluna CAST CASESPECIFIC para NOT CASESPECIFIC e o modo do banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
4 |
Marco |
SnoW |
EngineerinG |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
4 |
Marco |
SnoW |
EngineerinG |
Operação LIKE¶
Caso 1: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
Caso 2: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
Caso 3: Coluna CAST NOT CASESPECIFIC para NOTCASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
Caso 4: Coluna CAST CASESPECIFIC para NOT CASESPECIFIC e o modo do banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
2 |
John |
SNOW |
Engenharia |
3 |
WIlle |
SNOW |
Human resources |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
2 |
John |
SNOW |
Engenharia |
3 |
WIlle |
SNOW |
Human resources |
Operação IN¶
Caso 1: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
6 |
GEORGE |
sales |
|
7 |
GEORGE |
salEs |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
6 |
GEORGE |
sales |
|
7 |
GEORGE |
salEs |
Caso 2: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
5 |
Mary |
SaleS |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
5 |
Mary |
SaleS |
Cláusula ORDER BY¶
Nota
Observe que essa equivalência funcional pode ser diferente.
Caso 1: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
department |
|---|
EngineerinG |
Engenharia |
Finance |
Human resources |
IT |
SalEs |
SaleS |
Vendas |
salEs |
sales |
Snowflake¶
Nota
Consulte FDM. A ordem difere na ordem de inserção dos dados.
Consulta¶
Saída¶
department |
|---|
EngineerinG |
Engenharia |
Finance |
Human resources |
IT |
SalEs |
SaleS |
Vendas |
salEs |
sales |
Caso 2: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
department |
|---|
Finance |
Recursos Humanos |
Tecnologia da Informação |
Vendas |
Snowflake¶
Consulta¶
Saída¶
department |
|---|
Finance |
Recursos Humanos |
Tecnologia da Informação |
Vendas |
Cláusula GROUP BY¶
Aviso
Para garantir uma equivalência funcional, é necessário usar a expressão COLLATE.
Consulte o SSC-EWI-TD0007 para obter mais informações.
Caso 1: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
first_name |
|---|
Mary |
GeorgE |
WIlle |
John |
Marco |
GEORGE |
Snowflake¶
Consulta¶
Saída¶
FIRST_NAME |
|---|
George |
John |
WIlle |
Marco |
Mary |
GEORGE |
GEORGE |
GeorgE |
JOHN |
JOHN |
Caso 2: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
last_name |
|---|
SnoW |
SNOW |
SnoW |
Snow |
snow |
Snowflake¶
Consulta¶
Saída¶
last_name |
|---|
SnoW |
SNOW |
SnoW |
Snow |
snow |
Cláusula HAVING¶
A cláusula HAVING usará os padrões em:
Operações de avaliação.
Por exemplo:
=, !=, <, >.
Operação LIKE.
Operação IN.
Operação CAST para avaliação.
Operação CAST para LIKE.
O exemplo a seguir mostra um padrão com operação de avaliação.
Amostra: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
Snowflake¶
Consulta¶
Saída¶
Instrução CASEWHEN¶
A instrução CASE WHEN usará os padrões descritos em:
Operações de avaliação.
Por exemplo:
=, !=, <, >.
Operação LIKE.
Operação IN.
Operação CAST para avaliação.
Operação CAST para LIKE.
O exemplo a seguir mostra um padrão com operação de avaliação.
Teradata¶
Consulta¶
Saída¶
| first_name | last_name | department_full_name |
|---|---|---|
| GEORGE | Department Full Name | |
| Mary | GLOBAL SALES | |
| GeorgE | Other | |
| GEORGE | Department Full Name |
Snowflake¶
Consulta¶
Saída¶
| first_name | last_name | department_full_name |
|---|---|---|
| GEORGE | Department Full Name | |
| Mary | GLOBAL SALES | |
| GeorgE | Other | |
| GEORGE | Department Full Name |
Cláusula JOIN¶
Aviso
Há suporte para cenários simples.
A instrução JOIN usará os padrões descritos em:
Operações de avaliação.
Por exemplo:
=, !=, <, >.
Operação LIKE.
Operação IN.
Operação CAST para avaliação.
Operação CAST para LIKE.
O exemplo a seguir mostra um padrão com operação de avaliação.
Amostra: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo ANSI¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department_name |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
10 |
JOHN |
snow |
Finance |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department_name |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
10 |
JOHN |
snow |
Finance |
EWIs relacionados¶
SSC-EWI-TD0007: GROUP BY IS NOT EQUIVALENT IN TERADATA MODE
Modo TERA para comparação de cadeia de caracteres - COLLATE¶
Esta seção define a especificação de tradução para cadeia de caracteres no modo Tera com o uso de COLLATE.
Descrição ¶
Modo Tera para comparação de cadeia de caracteres e uso de COLLATE¶
A comparação de cadeia de caracteres no modo Tera aplicará a restrição COLLATE às colunas ou instruções, conforme necessário. O comportamento de corte da especificação de maiúsculas e minúsculas padrão pode ser levado em consideração. A especificação de caso padrão no Teradata para o modo TERA é NOT CASESPECIFIC. Assim, as colunas sem especificação de caso terão restrições COLLATE('en-ci').
Amostra de padrões de origem ¶
Dados de configuração¶
Teradata¶
Snowflake¶
Operação de comparação¶
Caso 1: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo TERA¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
Caso 2: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo TERA¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Human resources |
2 |
John |
SNOW |
Engenharia |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Human resources |
2 |
John |
SNOW |
Engenharia |
Caso 3: Coluna CAST NOT CASESPECIFIC para CASESPECIFIC e o modo de banco de dados é modo TERA¶
Nota
Observe que as seguintes consultas
SELECT * FROM employees WHERE first_name = 'JOHN ' (CASESPECIFIC)SELECT * FROM employees WHERE first_name (CASESPECIFIC) = 'JOHN '
retornarão os mesmos valores.
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
9 |
JOHN |
SnoW |
IT |
10 |
JOHN |
snow |
Finance |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
9 |
JOHN |
SnoW |
IT |
10 |
JOHN |
snow |
Finance |
Caso 4: Coluna CAST CASESPECIFIC para NOT CASESPECIFIC e o modo do banco de dados é modo TERA¶
Nota
CAST para uma coluna no lado esquerdo da comparação tem prioridade.
\ Por exemplo:
SELECT * FROM employees WHERE last_name (NOT CASESPECIFIC) = 'snoW';_retornará 5 linhas. _SELECT * FROM employees WHERE last_name = 'snoW' (NOT CASESPECIFIC);retornará 0 linhas com esses dados de configuração.
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
2 |
John |
SNOW |
Engenharia |
3 |
WIlle |
SNOW |
Human resources |
4 |
Marco |
SnoW |
EngineerinG |
10 |
JOHN |
snow |
Finance |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
2 |
John |
SNOW |
Engenharia |
3 |
WIlle |
SNOW |
Human resources |
4 |
Marco |
SnoW |
EngineerinG |
10 |
JOHN |
snow |
Finance |
Operação LIKE¶
Caso 1: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo TERA¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
Caso 2: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo TERA¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
Caso 3: Coluna CAST NOT CASESPECIFIC para CASESPECIFIC e o modo de banco de dados é modo TERA¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
Caso 4: Coluna CAST CASESPECIFIC para NOT CASESPECIFIC e o modo do banco de dados é modo TERA¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Human resources |
2 |
John |
SNOW |
Engenharia |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Human resources |
2 |
John |
SNOW |
Engenharia |
Operação IN¶
Caso 1: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo TERA¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
Caso 2: A restrição de coluna não é definida e o modo de banco de dados é modo TERA¶
Nota
No modo Tera, a especificação de caso não definida significa NOT CASESPECIFIC.
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
5 |
Mary |
SaleS |
|
6 |
GEORGE |
sales |
|
7 |
GEORGE |
salEs |
|
8 |
GeorgE |
SalEs |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
5 |
Mary |
SaleS |
|
6 |
GEORGE |
sales |
|
7 |
GEORGE |
salEs |
|
8 |
GeorgE |
SalEs |
Caso 3: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo TERA¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Human resources |
2 |
John |
SNOW |
Engenharia |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Human resources |
2 |
John |
SNOW |
Engenharia |
Cláusula ORDER BY¶
Caso 1: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo TERA¶
Teradata¶
Consulta¶
Saída¶
| employee_id | first_name |
|---|---|
| 1 | George |
| 2 | John |
| 3 | WIlle |
| 4 | Marco |
| 5 | Mary |
| 6 | GEORGE |
| 7 | GEORGE |
| 8 | GeorgE |
| 9 | JOHN |
| 10 | JOHN |
Snowflake¶
Consulta¶
Saída¶
| employee_id | first_name |
|---|---|
| 1 | George |
| 2 | John |
| 3 | WIlle |
| 4 | Marco |
| 5 | Mary |
| 6 | GEORGE |
| 7 | GEORGE |
| 8 | GeorgE |
| 9 | JOHN |
| 10 | JOHN |
Caso 2: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo TERA¶
Teradata¶
Consulta¶
Saída¶
| employee_id | last_name |
|---|---|
| 1 | Snow |
| 2 | SNOW |
| 3 | SNOW |
| 4 | SnoW |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | SnoW |
| 10 | snow |
Snowflake¶
Consulta¶
Saída¶
| employee_id | last_name |
|---|---|
| 1 | Snow |
| 2 | SNOW |
| 3 | SNOW |
| 4 | SnoW |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | SnoW |
| 10 | snow |
Cláusula GROUP BY¶
Caso 1: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo TERA¶
Teradata¶
Consulta¶
Saída¶
first_name |
|---|
Mary |
GeorgE |
WIlle |
JOHN |
Marco |
GEORGE |
Snowflake¶
Aviso
A especificação de caso na saída pode variar de acordo com o número de colunas selecionadas.
Consulta¶
Saída¶
first_name |
|---|
John |
Marco |
George |
GeorgE |
WIlle |
Mary |
Caso 2: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo TERA¶
Teradata¶
Consulta¶
Saída¶
last_name |
|---|
SnoW |
SNOW |
SnoW |
Snow |
snow |
Snowflake¶
Consulta¶
Saída¶
last_name |
|---|
SnoW |
SNOW |
SnoW |
Snow |
snow |
Cláusula HAVING¶
A cláusula HAVING usará os padrões em:
Operações de avaliação.
Por exemplo:
=, !=, <, >.
Operação LIKE.
Operação IN.
Operação CAST para avaliação.
Operação CAST para LIKE.
O exemplo a seguir mostra um padrão com operação de avaliação.
Amostra: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo TERA¶
Teradata¶
Nota
A especificação de caso na saída pode variar de acordo com o número de colunas selecionadas. Isso também está relacionado à cláusula GROUP BY.
Consulta¶
Saída¶
| employee_id | first_name |
|---|---|
| 7 | GEORGE |
| 1 | George |
| 6 | GEORGE |
Snowflake¶
Consulta¶
Saída¶
| employee_id | first_name |
|---|---|
| 7 | GEORGE |
| 1 | George |
| 6 | GEORGE |
Instrução CASEWHEN¶
A instrução CASE WHEN usará os padrões descritos em:
Operações de avaliação.
Por exemplo:
=, !=, <, >.
Operação LIKE.
Operação IN.
Operação CAST para avaliação.
Operação CAST para LIKE.
O exemplo a seguir mostra um padrão com operação de avaliação.
Teradata¶
Consulta¶
Saída¶
first_name |
last_name |
department_full_name |
|---|---|---|
GEORGE |
GLOBAL SALES |
|
Mary |
Outros |
|
GeorgE |
Outros |
|
GEORGE |
GLOBAL SALES |
Snowflake¶
Consulta¶
Saída¶
first_name |
last_name |
department_full_name |
|---|---|---|
GEORGE |
GLOBAL SALES |
|
Mary |
Outros |
|
GeorgE |
Outros |
|
GEORGE |
GLOBAL SALES |
Cláusula JOIN¶
Aviso
Há suporte para cenários simples com operações de avaliação.
A instrução JOIN usará os padrões descritos em:
Evaluation of comparison operations.
Por exemplo:
=, !=, <, >.
Operação LIKE.
Operação IN.
Operação CAST para avaliação.
Operação CAST para LIKE.
O exemplo a seguir mostra um padrão com operação de avaliação.
Amostra: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo TERA¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department_name |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
3 |
WIlle |
SNOW |
Recursos Humanos |
5 |
Mary |
Vendas |
|
6 |
GEORGE |
Vendas |
|
7 |
GEORGE |
Vendas |
|
8 |
GeorgE |
Vendas |
|
10 |
JOHN |
snow |
Finance |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department_name |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
3 |
WIlle |
SNOW |
Recursos Humanos |
5 |
Mary |
Vendas |
|
6 |
GEORGE |
Vendas |
|
7 |
GEORGE |
Vendas |
|
8 |
GeorgE |
Vendas |
|
10 |
JOHN |
snow |
Finance |
EWIs relacionados¶
SSC-EWI-TD0007: GROUP BY REQUIRED COLLATE FOR CASE INSENSITIVE COLUMNS
SC-FDM-TD0032 : [NOT] CASESPECIFIC CLAUSE WAS REMOVED
Modo TERA para comparação de cadeia de caracteres - NOCOLLATE¶
Esta seção define a especificação de tradução para cadeia de caracteres no modo Tera sem usar COLLATE.
Descrição ¶
Modo Tera para comparação de cadeia de caracteres e usos de NOCOLLATE¶
A comparação de cadeia de caracteres no modo Tera sem o uso de COLLATE aplicará RTRIM e UPPER conforme necessário. O comportamento de corte da especificação de maiúsculas e minúsculas padrão pode ser levado em consideração.
Amostra de padrões de origem ¶
Dados de configuração¶
Teradata¶
Snowflake¶
Operação de comparação¶
Caso 1: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo TERA¶
Este exemplo demonstra o uso de uma coluna configurada como NOT CASESPECIFIC, pois é uma coluna first_name. Mesmo ao solicitar a cadeia de caracteres 'GEorge', a execução da consulta recuperará resultados no Teradata porque a especificação de caso não é considerada.
Para emular esse cenário no Snowflake, são implementadas duas funções: RTRIM(UPPER(string_evaluation)), UPPER é necessário nesse cenário porque a cadeia de caracteres não analisa a especificação do caso.
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
Caso 2: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo TERA¶
Para este exemplo, a restrição de coluna é CASESPECIFIC, para a qual o exemplo não recupera linhas no Teradata porque “Snow” não é igual a “SNOW”.
No Snowflake, a migração resultante aponta apenas para o uso da função RTRIM, pois a especificação do caso é importante.
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Human resources |
2 |
John |
SNOW |
Engenharia |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
3 |
WIlle |
SNOW |
Human resources |
2 |
John |
SNOW |
Engenharia |
Caso 3: Coluna CAST CASESPECIFIC para NOTCASESPECIFIC e o modo de banco de dados é modo TERA¶
Teradata¶
Aviso
O (CASESPECIFIC) substitui a restrição de coluna na definição da tabela.
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
6 |
GEORGE |
sales |
Snowflake¶
Nota
RTRIM é necessário no lado esquerdo, e RTRIM é necessário no lado direito.
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
6 |
GEORGE |
sales |
Caso 4: Coluna CAST NOTCASESPECIFIC para NOT CASESPECIFIC e o modo do banco de dados é modo TERA¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
Caso 5: Caso de espaços em branco. A restrição de coluna é NOT CASESPECIFIC, o modo de banco de dados é modo TERA Mode e o uso da operação igual¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
5 |
Mary |
SaleS |
|
8 |
GeorgE |
SalEs |
|
6 |
GEORGE |
sales |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
5 |
Mary |
SaleS |
|
8 |
GeorgE |
SalEs |
|
6 |
GEORGE |
sales |
Operação LIKE¶
Nota
Essa operação funciona de forma diferente de outra. Os espaços em branco devem ter a mesma quantidade para recuperar as informações.
Caso 1: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo TERA¶
Espera-se que este exemplo exiba uma linha porque a especificação do caso não é relevante.
Nota
No Snowflake, a migração usa a operação ILIKE. Isso realiza uma comparação sem distinção entre maiúsculas e minúsculas.
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
Caso 2: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo TERA¶
Teradata¶
Consulta¶
Saída¶
first_name |
last_name |
department |
|---|---|---|
George |
Snow |
Vendas |
Jonh |
Snow |
Engenharia |
Snowflake¶
Consulta¶
Saída¶
first_name |
last_name |
department |
|---|---|---|
George |
Snow |
Vendas |
Jonh |
Snow |
Engenharia |
Caso 3: Coluna CAST CASESPECIFIC para NOTCASESPECIFIC e o modo de banco de dados é modo TERA¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
Caso 4: Coluna CAST NOTCASESPECIFIC para NOT CASESPECIFIC e o modo do banco de dados é modo ANSI¶
Nota
Esse caso exige a conversão para ILIKE.
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
Operação IN¶
Caso 1: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo TERA¶
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
7 |
GEORGE |
salEs |
|
1 |
George |
Snow |
Vendas |
6 |
GEORGE |
sales |
Caso 2: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo TERA¶
Neste exemplo, o uso da função UPPER não é necessário, pois, no banco de dados Teradata, a especificação do caso é relevante para os resultados.
Teradata¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
4 |
Marco |
SnoW |
EngineerinG |
Snowflake¶
Consulta¶
Saída¶
employee_id |
first_name |
last_name |
department |
|---|---|---|---|
4 |
Marco |
SnoW |
EngineerinG |
Cláusula ORDER BY¶
Caso 1: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo TERA¶
Perigo
Observe que essa ordem de saída pode ser diferente.
Teradata¶
Consulta¶
Saída¶
department |
|---|
EngineerinG |
Engenharia |
Finance |
Human resources |
IT |
sales |
SalEs |
Vendas |
SaleS |
salEs |
Snowflake¶
Consulta¶
Saída¶
department |
|---|
EngineerinG |
Engenharia |
Finance |
Human resources |
IT |
sales |
SalEs |
Vendas |
SaleS |
salEs |
Caso 2: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo TERA¶
Perigo
Observe que essa saída pode diferir na ordem.
Teradata¶
Consulta¶
Saída¶
last_name |
|---|
SnoW |
SNOW |
SNOW |
SnoW |
Snow |
snow |
Snowflake¶
Consulta¶
Saída¶
last_name |
|---|
SnoW |
SNOW |
SNOW |
SnoW |
Snow |
snow |
Cláusula GROUP BY¶
Aviso
Observe que essa saída pode ser diferente. Para garantir uma equivalência funcional, é necessário usar a expressão COLLATE.
Consulte SSC-EWI-TD0007 para obter mais informações.
_O seguinte pode ser uma solução alternativa sem collate: _
SELECTRTRIM(UPPER(first_name))
FROM employees
GROUPBYRTRIM(UPPER(first_name));
Sobre o comportamento da coluna
Perigo
Revise a inserção de dados no Snowflake. O Snowflake permite a inserção de valores como “GEORGE” e “georges” sem mostrar erros porque a especificação do caso não está vinculada explicitamente à coluna.
Suponha uma tabela e os dados a seguir:
Observe que esse exemplo não permite a inserção de valores com letras maiúsculas e minúsculas na coluna NOT CASESPECIFIC porque ele considera o mesmo valor. Como a coluna não supervisiona a especificação do caso, os valores “GEORGE” e “george” são verificados como a mesma informação.
As linhas a seguir são consideradas como erros de linhas duplicadas :
Caso 1: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo TERA¶
Teradata¶
Consulta¶
Saída¶
first_name |
|---|
Mary |
GeorgE |
WIlle |
JOHN |
Marco |
GEORGE |
Snowflake¶
Consulta¶
Saída¶
first_name |
|---|
George |
John |
WIlle |
Marco |
Mary |
GEORGE |
GEORGE |
GeorgE |
JOHN |
JOHN |
Caso 2: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo TERA¶
Teradata¶
Consulta¶
Saída¶
last_name |
|---|
SnoW |
SNOW |
SnoW |
Snow |
snow |
Snowflake¶
Consulta¶
Saída¶
last_name |
|---|
SnoW |
SNOW |
SnoW |
Snow |
snow |
Cláusula HAVING¶
A cláusula HAVING usará os padrões em:
Operações de avaliação.
Por exemplo:
=, !=, <, >.
Operação LIKE.
Operação IN.
Operação CAST para avaliação.
Operação CAST para LIKE.
O exemplo a seguir mostra um padrão com operação de avaliação.
Amostra: A restrição de coluna é CASESPECIFIC e o modo de banco de dados é modo TERA¶
Teradata¶
Consulta¶
Saída¶
last_name |
|---|
Snow |
Snowflake¶
Consulta¶
Saída¶
last_name |
|---|
Snow |
Instrução CASEWHEN¶
A instrução CASE WHEN usará os padrões descritos em:
Operações de avaliação.
Por exemplo:
=, !=, <, >.
Operação LIKE.
Operação IN.
Operação CAST para avaliação.
Operação CAST para LIKE.
O exemplo a seguir mostra um padrão com operação de avaliação.
Teradata¶
Consulta¶
Saída¶
first_name |
last_name |
department_full_name |
|---|---|---|
GEORGE |
Outros |
|
JOHN |
SnoW |
Outros |
Mary |
Outros |
|
JOHN |
snow |
Outros |
WIlle |
SNOW |
GLOBAL COOL SALES |
George |
Snow |
Outros |
GeorgE |
Outros |
|
GEORGE |
Outros |
|
Marco |
SnoW |
Tecnologia da Informação |
John |
SNOW |
Tecnologia da Informação |
Snowflake¶
Consulta¶
Saída¶
first_name |
last_name |
department_full_name |
|---|---|---|
GEORGE |
Outros |
|
JOHN |
SnoW |
Outros |
Mary |
Outros |
|
JOHN |
snow |
Outros |
WIlle |
SNOW |
GLOBAL COOL SALES |
George |
Snow |
Outros |
GeorgE |
Outros |
|
GEORGE |
Outros |
|
Marco |
SnoW |
Tecnologia da Informação |
John |
SNOW |
Tecnologia da Informação |
Cláusula JOIN¶
Aviso
Há suporte para cenários simples.
A instrução JOIN usará os padrões descritos em:
Operações de avaliação.
Por exemplo:
=, !=, <, >.
Operação LIKE.
Operação IN.
Operação CAST para avaliação.
Operação CAST para LIKE.
O exemplo a seguir mostra um padrão com operação de avaliação.
Amostra: A restrição de coluna é NOT CASESPECIFIC e o modo de banco de dados é modo TERA¶
Teradata¶
Consulta¶
Saída¶
| employee_id | first_name | last_name | department_name |
|---|---|---|---|
| 1 | George | Snow | Sales |
| 3 | WIlle | SNOW | Human Resources |
| 5 | Mary | Sales | |
| 6 | GEORGE | Sales | |
| 7 | GEORGE | Sales | |
| 8 | GeorgE | Sales | |
| 10 | JOHN | snow | Finance |
Snowflake¶
Consulta¶
Saída¶
| employee_id | first_name | last_name | department_name |
|---|---|---|---|
| 1 | George | Snow | Sales |
| 3 | WIlle | SNOW | Human Resources |
| 5 | Mary | Sales | |
| 6 | GEORGE | Sales | |
| 7 | GEORGE | Sales | |
| 8 | GeorgE | Sales | |
| 10 | JOHN | snow | Finance |
Problemas conhecidos¶
Existem algumas restrições de instrução SQL específicas de modo:
BEGIN TRANSACTION,END TRANSACTION,COMMIT [WORK].A inserção de dados pode ser diferente no Snowflake, pois a especificação do caso não está vinculada à instrução da coluna.
GROUP BYpode diferir na ordem, mas agrupa os valores corretos.ORDER BYse comporta de forma diferente no Snowflake.Se uma função tiver um TRIM() no código-fonte, essa solução alternativa adicionará as funções necessárias ao código-fonte. Portanto, RTRIM será aplicado à função de origem TRIM().
EWIs relacionados¶
SSC-EWI-TD0007: GROUP BY IS NOT EQUIVALENT IN TERADATA MODE