Udostępnij za pośrednictwem


SELECT klauzula

Dotyczy:zaznaczono jako tak Databricks SQL zaznaczono jako tak Databricks Runtime

Zbiera kolumny, które mają być zwracane z podzapytania, w tym wykonywanie wyrażeń, agregacji i deduplikacji.

Składnia

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

Parametry

  • wskazówki

    Wskazówki pomagają optymalizatorowi usługi Azure Databricks podejmować lepsze decyzje dotyczące planowania. Usługa Azure Databricks obsługuje wskazówki techniczne wpływające na wybór strategii łączenia i repartycjonowanie danych.

  • WSZYSTKIE

    Zaznacz wszystkie pasujące wiersze z odwołań do tabeli. Domyślnie włączone.

  • DISTINCT

    Zaznacz wszystkie pasujące wiersze z odwołań do tabeli po usunięciu duplikatów w wynikach.

  • named_expression

    Wyrażenie z opcjonalną przypisaną nazwą.

    • wyrażenie

      Kombinacja co najmniej jednej wartości, operatorów i funkcji SQL, która daje w wyniku wartość.

    • column_alias

      Opcjonalny identyfikator kolumny nazywający wynik wyrażenia. Jeśli nie podano column_alias, wówczas usługa SQL w Databricks generuje jeden.

  • star_clause

    Skrócona nazwa wszystkich kolumn możliwych do odwołania w klauzuli FROM lub kolumn lub pól odwołania do określonej tabeli w klauzuli FROM.

Przykłady

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