Partager via


Clause SELECT

S’applique à :case cochée oui Databricks SQL case cochée oui Databricks Runtime

Collecte les colonnes à retourner à partir de la sous-requête, y compris l’exécution d’expressions, d’agrégations et de déduplication.

Syntaxe

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

Paramètres

  • indicateurs

    Les indicateurs aident l’optimiseur Azure Databricks à prendre de meilleures décisions de planification. Azure Databricks prend en charge les indicateurs qui influencent la sélection des stratégies de jointure et le repartitionnement des données.

  • TOUT

    Sélectionnez toutes les lignes correspondantes dans les références de table. Activé par défaut.

  • DISTINCT

    Sélectionnez toutes les lignes correspondantes dans les références de table après avoir supprimé les doublons dans les résultats.

  • named_expression

    Expression avec un nom attribué facultatif.

    • expression

      Combinaison d’une ou plusieurs valeurs, opérateurs et fonctions SQL qui sont évaluées à une valeur.

    • column_alias

      Identificateur de colonne facultatif nommant le résultat de l’expression. Si aucun column_alias n’est fourni, Databricks SQL en dérive un.

  • star_clause

    Raccourci pour nommer toutes les colonnes référencées dans la FROM clause ou les colonnes ou champs d’une table spécifique dans la FROM clause.

Exemples

-- 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