Поделиться через


предложение SELECT

применимо:флажок Databricks SQL флажок Databricks Runtime

Собирает столбцы, возвращаемые из вложенного запроса, включая выполнение выражений, агрегации и устранения дубликатов.

Синтаксис

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

Параметры

  • подсказки

    Подсказки помогают оптимизатору Azure Databricks принимать лучшие решения по планированию. Azure Databricks поддерживает подсказки, влияющие на выбор стратегий присоединения и перераспределение данных.

  • ALL

    Выберите все соответствующие строки из ссылок на таблицу. Включен по умолчанию.

  • ОТЛИЧИТЕЛЬНЫЙ

    Выберите все соответствующие строки из ссылок на таблицу после удаления повторяющихся результатов.

  • именованное_выражение

    Выражение с необязательным назначенным именем.

    • выражение

      Сочетание одного или нескольких значений, операторов и функций SQL, которые оценивают значение.

    • column_alias

      Необязательный идентификатор столбца, именующий результат выражения. Если column_alias не предоставлен, Databricks SQL автоматически определяет его.

  • star_clause

    Краткая запись для именования всех столбцов, к которым можно обратиться, в предложении FROM или столбцов или полей ссылки на конкретную таблицу в предложении FROM.

Примеры

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