SnowConvert - RedShift - Expressões¶
Listas de expressões¶
Descrição¶
Uma lista de expressões é uma combinação de expressões e pode aparecer em condições de associação e comparação (cláusulasWHERE) e em cláusulas GROUP BY. (Listas de expressões de referência da linguagem Redshift SQL).
Observação
Essa sintaxe é totalmente compatível com o Snowflake.
Sintaxe da gramática¶
Amostra de padrões da origem¶
Dados de configuração¶
Redshift¶
Cláusula IN¶
Código de entrada:¶
Redshift¶
Resultado¶
ID |
NAME |
QUANTITY |
FRUIT |
PRICE |
|---|---|---|---|---|
1 |
Alice |
1 |
apple |
100 |
2 |
Bob |
5 |
banana |
200 |
3 |
Charlie |
10 |
cherry |
300 |
Código de saída:¶
Snowflake¶
Resultado¶
ID |
NAME |
QUANTITY |
FRUIT |
PRICE |
|---|---|---|---|---|
1 |
Alice |
1 |
apple |
100 |
2 |
Bob |
5 |
banana |
200 |
3 |
Charlie |
10 |
cherry |
300 |
Comparações¶
Código de entrada:¶
Redshift¶
Resultado¶
ID |
NAME |
QUANTITY |
FRUIT |
PRICE |
|---|---|---|---|---|
1 |
Alice |
1 |
apple |
100 |
Código de saída:¶
Snowflake¶
Resultado¶
ID |
NAME |
QUANTITY |
FRUIT |
PRICE |
|---|---|---|---|---|
1 |
Alice |
1 |
apple |
100 |
Nota
As comparações de listas de expressões com os seguintes operadores podem ter um comportamento diferente no Snowflake. ( <, <= , >, >=). Esses operadores são transformados em operações AND lógicas para obter equivalência total no Snowflake.
Código de entrada:¶
Redshift¶
Resultado¶
R1 |
R2 |
R3 |
R4 |
R5 |
|---|---|---|---|---|
FALSE |
FALSE |
NULL |
NULL |
FALSE |
Código de saída:¶
Snowflake¶
Resultado¶
R1 |
R2 |
R3 |
R4 |
R5 |
|---|---|---|---|---|
FALSE |
FALSE |
NULL |
NULL |
FALSE |
Tuplas aninhadas¶
Código de entrada:¶
Redshift¶
Resultado¶
ID |
NAME |
QUANTITY |
FRUIT |
PRICE |
|---|---|---|---|---|
1 |
Alice |
1 |
apple |
100 |
2 |
Bob |
5 |
banana |
200 |
3 |
Charlie |
10 |
cherry |
300 |
Código de saída¶
Snowflake¶
Resultado¶
ID |
NAME |
QUANTITY |
FRUIT |
PRICE |
|---|---|---|---|---|
1 |
Alice |
1 |
apple |
100 |
2 |
Bob |
5 |
banana |
200 |
3 |
Charlie |
10 |
cherry |
300 |
Instrução de caso¶
Código de entrada:¶
Redshift¶
Resultado¶
RESULT |
|---|
Encontrado |
Encontrado |
Encontrado |
Não encontrado. |
Não encontrado. |
Não encontrado. |
Código de saída¶
Snowflake¶
Resultado¶
RESULT |
|---|
Encontrado |
Encontrado |
Encontrado |
Não encontrado. |
Não encontrado. |
Não encontrado. |
Expressões múltiplas¶
Código de entrada:¶
Redshift¶
Resultado¶
ID |
NAME |
QUANTITY |
FRUIT |
PRICE |
|---|---|---|---|---|
1 |
Alice |
1 |
apple |
100 |
2 |
Bob |
5 |
banana |
200 |
3 |
Charlie |
10 |
cherry |
300 |
Código de saída¶
Snowflake¶
Resultado¶
ID |
NAME |
QUANTITY |
FRUIT |
PRICE |
|---|---|---|---|---|
1 |
Alice |
1 |
apple |
100 |
2 |
Bob |
5 |
banana |
200 |
3 |
Charlie |
10 |
cherry |
300 |
Junções¶
Código de entrada:¶
Redshift¶
Resultado¶
QUANTITY |
FRUIT |
QUANTITY |
FRUIT |
|---|---|---|---|
um |
apple |
um |
apple |
Código de saída¶
Snowflake¶
Resultado¶
QUANTITY |
FRUIT |
QUANTITY |
FRUIT |
|---|---|---|---|
um |
apple |
um |
apple |
Problemas conhecidos ¶
Não foram encontrados problemas.
Expressões compostas¶
Descrição ¶
Uma expressão composta é uma série de expressões simples unidas por operadores aritméticos. Uma expressão simples usada em uma expressão composta deve retornar um valor numérico.
Sintaxe da gramática ¶
Tabela de conversão¶
| Redshift | Snowflake | Comments |
|---|---|---|
|| (Concatenation) | || | Fully supported by Snowflake |
Amostra de padrões da origem¶
Código de entrada:¶
Redshift¶
Resultados¶
concat_string_number |
|---|
Hello has number 42 |
<NULL> |
Redshift has number -7 |
concat_string_date |
|---|
Hello on 2023-12-01 |
<NULL> |
<NULL> |
concat_with_null_handling |
|---|
Hello with number 42 |
Unknown with number 0 |
Redshift with number -7 |
Código de saída:
Snowflake¶
Resultados¶
concat_string_number |
|---|
Hello has number 42 |
<NULL> |
Redshift has number -7 |
concat_string_date |
|---|
Hello on 2023-12-01 |
<NULL> |
<NULL> |
concat_with_null_handling |
|---|
Hello with number 42 |
Unknown with number 0 |
Redshift with number -7 |
Problemas conhecidos¶
Não foram encontrados problemas.
EWIs relacionados¶
Não há problemas conhecidos.
Operadores aritméticos¶
Operadores
Conversão de operadores aritméticos
Tabela de conversão¶
| Redshift | Snowflake | Comments |
|---|---|---|
| +/- (positive and negative sign/operator) | +/- | Fully supported by Snowflake |
| ^ (exponentiation) | POWER | Fully supported by Snowflake |
| * (multiplication) | * | Fully supported by Snowflake |
| / (division) | / | Redshift division between integers always returns integer value, FLOOR function is added to emulate this behavior. |
| % (modulo) | % | Fully supported by Snowflake |
| + (addition) | + and || | Fully supported by Snowflake. When string are added, it is transformed to a concat. |
| - (subtraction) | - | Fully supported by Snowflake |
| @ (absolute value) | ABS | Fully supported by Snowflake |
| |/ (square root) | SQRT | Fully supported by Snowflake |
| ||/ (cube root) | CBRT | Fully supported by Snowflake |
Amostra de padrões da origem¶
Adição, subtração, positivo e negativo¶
Código de entrada:
Código de entrada:¶
Redshift¶
Resultados¶
| positive_value | negative_value | add_sub_result | next_day | one_hour_before | string_sum | int_string_sum | string_int_sum |
|---|---|---|---|---|---|---|---|
| 100.50 | -100.50 | 97.50 | 2024-12-02 10:30:00.000000 | 2024-12-01 09:30:00.000000 | Basic testType A | 105.5 | 105.5 |
| 250.75 | -250.75 | 243.75 | 2024-12-03 15:45:00.000000 | 2024-12-02 14:45:00.000000 | Complex operationsType B | 255.75 | 255.75 |
| -50.25 | 50.25 | -53.25 | 2024-12-04 20:00:00.000000 | 2024-12-03 19:00:00.000000 | Negative base valueType C | -45.25 | -45.25 |
| 0.00 | 0.00 | 8.00 | 2024-12-05 09:15:00.000000 | 2024-12-04 08:15:00.000000 | Zero base valueType D | 5 | 5 |
Código de saída:
Snowflake¶
Resultados¶
| positive_value | negative_value | add_sub_result | next_day | one_hour_before | string_sum | int_string_sum | string_int_sum |
|---|---|---|---|---|---|---|---|
| 100.5 | -100.5 | 97.5 | 2024-12-02 10:30:00 | 2024-12-01 09:30:00 | Basic testType A | 105.5 | 105.5 |
| 250.75 | -250.75 | 243.75 | 2024-12-03 15:45:00 | 2024-12-02 14:45:00 | Complex operationsType B | 255.75 | 255.75 |
| -50.25 | 50.25 | -53.25 | 2024-12-04 20:00:00 | 2024-12-03 19:00:00 | Negative base valueType C | -45.25 | -45.25 |
| 0 | 0 | 8 | 2024-12-05 09:15:00 | 2024-12-04 08:15:00 | Zero base valueType D | 5 | 5 |
Exponenciação, multiplicação, divisão e módulo¶
Código de entrada:¶
Redshift¶
Resultados¶
| raised_to_exponent | multiplied_value | divided_value | int_division | modulo_result | add_sub_result | controlled_eval |
|---|---|---|---|---|---|---|
| 10100.25 | 201 | 20.1 | 20 | 1 | 97.5 | 104.5 |
| 15766047.296875 | 752.25 | 25.075 | 25 | 1 | 243.75 | 259.75 |
| 6375940.62890625 | -251.25 | -6.28125 | -6 | 0 | -53.25 | -30.25 |
| 0 | 0 | 0 | 0 | 1 | 8 | 10 |
Código de saída:¶
Snowflake¶
Resultados¶
| raised_to_exponent | multiplied_value | divided_value | int_division | modulo_result | add_sub_result | controlled_eval |
|---|---|---|---|---|---|---|
| 10100.25 | 201 | 20.1 | 20 | 1 | 97.5 | 104.5 |
| 15766047.2969 | 752.25 | 25.075 | 25 | 1 | 243.75 | 259.75 |
| 6375940.6289 | -251.25 | -6.2812 | -7 | 0 | -53.25 | -30.25 |
| 0 | 0 | 0 | 0 | 1 | 8 | 10 |
Valor absoluto, raiz quadrada e raiz cúbica¶
Código de entrada:¶
Redshift¶
Resultados¶
Código de saída:¶
Snowflake¶
Resultados¶
Problemas conhecidos¶
No Snowflake, é possível usar os operadores unários
+e-com valores de cadeia de caracteres, mas no Redshift isso não é válido.
EWIs relacionados¶
Sem EWIs relacionados.
Operadores bit a bit¶
Operadores
Conversão para operadores bit a bit
Tabela de conversão¶
| Redshift | Snowflake | Comments |
|---|---|---|
& (AND) | BITAND | Fully supported by Snowflake |
| (OR) | BITOR | Fully supported by Snowflake |
<< (Shift Left) | BITSHIFTLEFT | |
>> (Shift Right) | BITSHIFTRIGHT | |
# (XOR) | BITXOR | Fully supported by Snowflake |
~ (NOT) | BITNOT | Fully supported by Snowflake |
Amostra de padrões da origem¶
Dados de configuração¶
Redshift¶
Consulta¶
Snowflake¶
Consulta¶
Operadores bit a bit em valores inteiros¶
Código de entrada:¶
Redshift¶
Resultados¶
Código de saída:
Snowflake¶
Resultados¶
Operadores bit a bit em dados binários¶
Para as funções BITAND, BITOR e BITXOR, o parâmetro'LEFT' é adicionado para inserir preenchimento no caso de ambos os valores binários terem comprimento diferente, para evitar erros ao comparar os valores no Snowflake.
Redshift¶
Consulta¶
Resultado¶
Snowflake¶
Consulta¶
Resultado¶
Problemas conhecidos¶
Não foram encontrados problemas.
EWIs relacionados¶
SSC-FDM-PG0010: Os resultados podem variar devido ao comportamento da função bit a bit do Snowflake.