表引用

適用於:勾選“是”磚的SQL勾選“是”磚運行時

表引用是SQL中的中間結果表。它可以是派生的從其他操作符(如函數、連接或子查詢)直接引用基表,或將其構造為內聯表。

語法

table_referencetable_nameTABLESAMPLE條款table_alias|view_nametable_alias|加入條款|條款|透視條款|橫向table_valued_functiontable_alias|條款|橫向查詢TABLESAMPLE條款table_alias

參數

  • table_name

    屬性的表時間規範.看到工作與三角洲湖表曆史獲取詳細信息。

    如果找不到表,數據庫會拋出一個TABLE_OR_VIEW_NOT_FOUND錯誤。

    看到列、字段和參數解析有關名稱解析的更多信息。

  • view_name

    標識視圖或公共表表達式(CTE)。如果無法找到視圖,則Databricks將引發一個TABLE_OR_VIEW_NOT_FOUND錯誤。

    看到列、字段和參數解析有關名稱解析的更多信息。

  • 加入

    使用連接組合兩個或多個關係。

  • 適用於:勾選“是”磚的SQL勾選“是”Databricks Runtime 12.0及以上版本。

    用於數據透視;您可以根據特定的列值獲得聚合值。

    在Databricks Runtime 12.0之前僅限於選擇後,條款。

  • 透視

    適用於:勾選“是”磚的SQL勾選“是”Databricks Runtime 12.0及以上版本。

    用於數據透視;您可以將多個列組拆分為行。

  • (橫向)table_valued_function_invocation

    調用表值函數。引用由前對象公開的列table_reference同樣的條款,你必須指定橫向

  • 定義內聯表。

  • (橫向)(查詢

    使用查詢計算表引用。前綴為的查詢橫向可參考專欄曝光前table_reference同樣的條款。這樣的構造稱為相關查詢或相關查詢。

    橫向自Databricks Runtime 9.0開始支持。

  • TABLESAMPLE

    可選地減少結果集的大小,方法是隻對部分行進行抽樣。

  • table_alias

    屬性的標簽table_reference.如果table_alias包括column_identifierS的列數必須與table_reference

在Delta表上選擇

除標準外選擇選項,Delta表支持本節中描述的時間旅行選項。詳細信息請參見工作與三角洲湖表曆史

作為語法

table_identifier時間戳作為timestamp_expressiontable_identifier版本作為版本
  • timestamp_expression可以是以下任意一個:

    • 2018 - 10 - 18 t22:15:12.013z也就是說,可以轉換為時間戳的字符串

    • 鑄造(' 2018-10-1813:36:32c '作為時間戳)

    • “2018-10-18”,即日期字符串

    • current_timestamp ()-時間間隔12小時

    • date_sub(當前日期(),1)

    • 可以轉換為時間戳的任何其他表達式

  • 版本的輸出是可以得到的長值描述曆史table_spec

既不timestamp_expression也不版本可以是子查詢。

例子

>選擇事件時間戳作為2018 - 10 - 18 t22:15:12.013z>選擇δ' /mnt/δ/事件版本作為123

@語法

使用@語法指定時間戳或版本。時間戳必須是inyyyyMMddHHmmssSSS格式。之後可以指定版本@通過將v到版本。例如,查詢版本123對於桌子來說事件,指定events@v123

例子

>選擇事件@20190101000000000>選擇事件@v123

例子

——select * from VALUES(1,2) AS t1(c1, c2), VALUES(3,4) AS t2(c3, c4);1 2 3 4——從一個表> select t2中選擇所有可引用的列。* FROM VALUES(1,2) AS t1(c1, c2), VALUES(3,4) AS t2(c3, c4);3 4——從所有表中選擇所有可引用的列,除了t2。SELECT * EXCEPT(c4) FROM VALUES(1,2) AS t1(c1, c2), VALUES(3,4) AS t2(c3, c4);1 2 3——從一個表中選擇所有可引用的列,除了嵌套字段。> SELECT * EXCEPT(c2.b) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);1 {"a": 2}——刪除所有字段將導致一個空結構> SELECT * EXCEPT(c2. 2)。b, c2.a) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);1{}——重疊名稱導致錯誤> SELECT * EXCEPT(c2, c2.a) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);錯誤:EXCEPT_OVERLAPPING_COLUMNS