查询

从一个或多个表中检索结果集。

适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime

语法

[ common_table_expression ]
  subquery
  [ set_operator ]
  [ ORDER BY clause | { [ DISTRIBUTE BY clause ] [ SORT BY clause ] } | CLUSTER BY clause ]
  [ WINDOW clause ]
  [ LIMIT clause  ]
  [ OFFSET clause ]
  [ { |> piped_operation } [ ...] ]

subquery
{ subselect |
  VALUES clause |
  ( query ) |
  TABLE [ table_name | view_name ] |
  FROM table_reference [, ...] }

参数

  • 公用表表达式

    公用表表达式 (CTE) 是一个或多个命名查询,可在主查询块内重复使用多次,以避免重复计算或提高复杂嵌套查询的可读性。

  • subquery

    生成中间结果集的几个构造之一。

    • 子选择

      SELECT FROM WHERE 模式组成的子查询。

      • VALUES

        指定了内联临时表。

      • ( query )

        查询的嵌套调用,其中可能包含集合运算符或公用表表达式。

      • TABLE

        返回整个表或视图。

        如果找不到表或视图,Azure Databricks 会引发 TABLE_OR_VIEW_NOT_FOUND 错误。

      • 适用对象:勾选为“是” Databricks Runtime 16.2 及更高版本

        返回所有表引用的交叉联接。 此子句通常用作 SQL 管道的根目录。

        • table_reference

          SELECT 的输入源。 在引用之前,可以使用 STREAM 关键字将此输入引用转换为流式引用。

    SELECT 的输入源。 在引用之前,可以使用 STREAM 关键字将此输入引用转换为流式引用。

  • set_operator

    使用 UNIONEXCEPTINTERSECT 运算符组合子查询的构造。

  • ORDER BY

    查询的完整结果集的行顺序。 跨分区对输出行进行排序。 此参数与 SORT BYCLUSTER BYDISTRIBUTE BY 互斥,不能一起指定。

  • DISTRIBUTE BY

    一组表达式,作为对结果行进行重新分区的依据。 此参数与 ORDER BYCLUSTER BY 互斥,不能一起指定。

  • SORT BY

    用于对每个分区中的行进行排序的排序依据。 此参数与 ORDER BYCLUSTER BY 互斥,不能一起指定。

  • CLUSTER BY

    一组表达式,用于对行进行重新分区和排序。 使用此子句与同时使用 DISTRIBUTE BYSORT BY 的效果相同。

  • LIMIT

    语句或子查询可返回的最大行数。 此子句通常与 ORDER BY 结合使用来生成确定的结果。

  • OFFSET

    适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime 11.3 LTS 及更高版本

    跳过语句或子查询返回的行数。 此子句大多与 LIMIT 结合使用,以对结果集进行分页,与 结合使用以产生确定的结果。

    注意

    使用 LIMITOFFSET 对结果集进行分页时,跳过的行仍会得到处理。 这些行只是在结果集中被禁止显示。 对于资源密集型查询,不建议使用此技术进行分页。

  • WINDOW

    定义可由 中的多个select_query共享的命名窗口规范。

  • |> piped_operation

    适用对象:勾选为“是”Databricks Runtime 16.2 及更高版本

    指定要对子查询结果集以及其他前面的子句执行的管道化操作。