Compartilhar via


cláusula SELECT

Aplica-se a:com marcação de verificação sim Databricks SQL com marcação de verificação sim Databricks Runtime

Coleta as colunas a serem retornadas da subconsulta, incluindo a execução de expressões, agregações e remoção de duplicatas.

Sintaxe

SELECT [ hints ] [ ALL | DISTINCT ] { named_expression | star_clause } [, ...]

Parâmetros

  • Dicas

    Dicas ajudam o otimizador de Azure Databricks a tomar melhores decisões de planejamento. Azure Databricks dá suporte a dicas que influenciam a seleção de estratégias de junção e o reparticionamento dos dados.

  • TODOS

    Selecione todas as linhas correspondentes nas referências da tabela. Habilitado por padrão.

  • DISTINÇÃO

    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.

    • expressão

      Uma combinação de um ou mais valores, operadores e funções SQL que são avaliadas como um valor.

    • column_alias

      Um identificador de coluna opcional nomeando o resultado da expressão. Se nenhum column_alias for fornecido, o Databricks SQL derivará um.

  • star_clause

    Uma abreviação para nomear todas as colunas que podem ser referenciadas na cláusula FROM ou as colunas ou campos de uma referência de tabela específica na cláusula FROM.

Condições de erro comuns

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