SELECT cláusula
Aplica-se a: Databricks SQL
Databricks Runtime
Reúne as colunas que devem ser retornadas da subconsulta, incluindo a execução de expressões, agregações e a eliminação de duplicados.
Sintaxe
SELECT [ hints ] [ ALL | DISTINCT ] { named_expression | star_clause } [, ...]
Parâmetros
-
As dicas ajudam o otimizador do Azure Databricks a tomar melhores decisões de planejamento. O Azure Databricks dá suporte a dicas que influenciam a seleção de estratégias de junção e o reparticionamento dos dados.
TODOS OS
Selecione todas as linhas correspondentes nas referências da tabela. Ativado por padrão.
DISTINTOS
Selecione todas as linhas correspondentes nas referências da tabela depois de remover duplicatas nos resultados.
named_expression
Uma expressão com um nome atribuído opcional.
-
Uma combinação de um ou mais valores, operadores e funções SQL que é avaliada como um valor.
-
Um identificador de coluna opcional nomeando o resultado da expressão. Se nenhum
column_alias
for fornecido, o Databricks SQL derivará um valor.
-
-
Uma abreviatura para nomear todas as colunas referendáveis na cláusula
FROM
ou colunas ou campos de referência de uma tabela específica na cláusulaFROM
.
Exemplos
-- select all referencable columns from all tables
> SELECT * FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
1 2 3 4
-- select all referencable columns from one table
> SELECT t2.* FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
3 4
-- select all referencable columns from all tables except t2.c4
> SELECT * EXCEPT(c4) FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
1 2 3
-- select all referencable columns from a table, except a nested field.
> SELECT * EXCEPT(c2.b) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
1 { "a" : 2 }
-- Removing all fields results in an empty struct
> SELECT * EXCEPT(c2.b, c2.a) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
1 { }
-- Overlapping names result in an error
> SELECT * EXCEPT(c2, c2.a) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
Error: EXCEPT_OVERLAPPING_COLUMNS