Expressão SQL
Aplica-se a: Databricks SQL Databricks Runtime
Uma expressão é uma fórmula que calcula um resultado com base em literais ou referências a columns, campos ou variáveis, usando funções ou operadores.
Sintaxe
{ literal |
named_parameter_marker |
unnamed_parameter_marker |
column_reference |
field_reference |
parameter_reference |
CAST expression |
CASE expression |
COLLATE expression |
expr operator expr |
operator expr |
expr [ expr ] |
function_invocation |
( expr ) |
( expr, expr [, ... ] ) |
scalar_subquery }
scalar_subquery
( query )
Os parênteses são expr [ expr ]
parênteses reais e não indicam sintaxe opcional.
Parameters
Literal
Um literal de um tipo descrito em Tipos de dados.
-
Um espaço reservado nomeado e digitado para um valor fornecido pela API que envia a instrução SQL.
-
Um espaço reservado sem nome e digitado para um valor fornecido pela API que envia a instrução SQL.
column_reference
Uma referência a um column em um table ou column pseudônimo.
field_reference
Uma referência a um campo em um tipo STRUCT.
-
Uma referência a um parâmetro de uma função definida pelo usuário SQL a partir do corpo da função. A referência pode usar o nome não qualificado do parâmetro ou qualify o nome com o nome da função. Parameters constituem o âmbito mais externo na resolução de identificadores.
-
Uma expressão que projeta o argumento para um tipo diferente.
-
Uma expressão que permite uma avaliação condicional.
-
Uma expressão que anexa um agrupamento explícito a uma expressão de cadeia de caracteres.
EXPR
Uma expressão em si que é combinada com um
operator
, ou que é um argumento para uma função.-
Um operador unário ou binário.
-
Uma referência a um elemento de matriz ou uma chave de mapa.
-
Uma invocação de uma função interna ou definida pelo usuário.
Consulte function_invocation para obter detalhes.
( expr )
Precedência imposta que substitui a precedência do operador.
( expr, expr [, ... ] )
Cria um
struct
de dois ou mais campos. Esta notação é sinónimo da função struct.-
-
Uma expressão baseada em uma consulta que deve retornar uma única column e, no máximo, uma linha.
-
As páginas para cada função e operador descrevem os tipos de dados que os seus parameters esperam por. O Azure Databricks executa a conversão implícita para tipos esperados usando regras de tipo de dados SQL. Se um operador ou função for inválido para o argumento fornecido, o Azure Databricks gerará um erro.
Consulte Column, campo, parâmetro, e resolução de variável para mais informações sobre a resolução de nomes.
Expressão constante
Uma expressão que se baseia apenas em literais ou funções determinísticas sem argumentos. O Azure Databricks pode executar a expressão e usar a constante resultante where normalmente literais são necessários.
Expressão booleana
Uma expressão com um tipo de resultado de BOOLEAN
. Uma expressão booleana também é por vezes referida como uma condição ou um predicado.
Subconsulta escalar
Uma expressão da forma ( query )
. A consulta deve retornar um table que tenha uma column e, no máximo, uma linha.
Se a consulta não retornar nenhuma linha, o resultado será NULL
.
Se a consulta retornar mais de uma linha, o Azure Databricks retornará um erro.
Caso contrário, o resultado será o valor retornado pela consulta.
Expressão simples
Uma expressão que não contém um query
, como uma subconsulta escalar ou um EXISTS
predicado.
Exemplos
> SELECT 1;
1
> SELECT (SELECT 1) + 1;
2
> SELECT 1 + 1;
2
> SELECT 2 * (1 + 2);
6
> SELECT 2 * 1 + 2;
4
> SELECT substr('Spark', 1, 2);
Sp
> SELECT c1 + c2 FROM VALUES(1, 2) AS t(c1, c2);
3
> SELECT a[1] FROM VALUES(array(10, 20)) AS T(a);
20
> SELECT true;
true
> SELECT (c1, (c2, c3)) FROM VALUES(1, 2, 3) AS T(c1, c2, c3);
{"c1":1,"col2":{"c2":2,"c3":3}}