表引用
適用於:磚的SQL磚運行時
表引用是SQL中的中間結果表。它可以是派生的從其他操作符(如函數、連接或子查詢)直接引用基表,或將其構造為內聯表。
語法
table_reference{table_name[TABLESAMPLE條款][table_alias]|view_name[table_alias]|加入條款|主條款|透視條款|[橫向]table_valued_function[table_alias]|值條款|[橫向](查詢)[TABLESAMPLE條款][table_alias]}
參數
屬性的表時間規範.看到工作與三角洲湖表曆史獲取詳細信息。
如果找不到表,數據庫會拋出一個TABLE_OR_VIEW_NOT_FOUND錯誤。
看到列、字段和參數解析有關名稱解析的更多信息。
標識視圖或公共表表達式(CTE)。如果無法找到視圖,則Databricks將引發一個TABLE_OR_VIEW_NOT_FOUND錯誤。
看到列、字段和參數解析有關名稱解析的更多信息。
使用連接組合兩個或多個關係。
適用於:磚的SQLDatabricks Runtime 12.0及以上版本。
用於數據透視;您可以根據特定的列值獲得聚合值。
適用於:磚的SQLDatabricks Runtime 12.0及以上版本。
用於數據透視;您可以將多個列組拆分為行。
(橫向)table_valued_function_invocation
調用表值函數。引用由前對象公開的列
table_reference
同樣的從
條款,你必須指定橫向
.定義內聯表。
(橫向)(查詢)
使用查詢計算表引用。前綴為的查詢
橫向
可參考專欄曝光前table_reference
同樣的從
條款。這樣的構造稱為相關查詢或相關查詢。橫向
自Databricks Runtime 9.0開始支持。可選地減少結果集的大小,方法是隻對部分行進行抽樣。
屬性的標簽
table_reference
.如果table_alias
包括column_identifier
S的列數必須與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
也不版本
可以是子查詢。
例子
——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