odwołanie do tabeli
Dotyczy: Databricks SQL Databricks Runtime
Odwołanie do tabeli jest pośrednią tabelą wyników w języku SQL. Może on pochodzić z innych operatorów, takich jak funkcje, sprzężenia lub podzapytanie, odwołanie do tabeli bazowej bezpośrednio lub konstruowanie ich jako tabeli wbudowanej.
Składnia
table_reference
{ table_name [ TABLESAMPLE clause ] [ table_alias ] |
{ STREAM table_name [ table_alias ] | STREAM ( table_name ) [ table_alias ] } |
view_name [ table_alias ] |
JOIN clause |
PIVOT clause |
UNPIVOT clause |
[ STREAM ] table_valued_function [ table_alias ] |
[ LATERAL ] table_valued_function [ table_alias ] |
VALUES clause |
[ LATERAL ] ( query ) [ TABLESAMPLE clause ] [ table_alias ] }
Parametry
-
Identyfikuje tabelę, która może zawierać specyfikację czasową. Aby uzyskać szczegółowe informacje, zobacz Praca z historią tabel usługi Delta Lake.
Jeśli nie można odnaleźć tabeli usługi Azure Databricks, wystąpi błąd TABLE_OR_VIEW_NOT_FOUND .
Aby uzyskać więcej informacji na temat rozpoznawania nazw, zobacz Kolumna, pole, parametr i rozdzielczość zmiennych.
Dotyczy: ** Databricks Runtime 16.0 lub nowsze
-
Identyfikuje widok lub wspólne wyrażenie tabeli (CTE). Jeśli nie można odnaleźć widoku usługi Azure Databricks, wystąpi błąd TABLE_OR_VIEW_NOT_FOUND .
Aby uzyskać więcej informacji na temat rozpoznawania nazw, zobacz Kolumna, pole, parametr i rozdzielczość zmiennych.
STRUMIEŃ
Zwraca tabelę lub wartość tabeli jako źródło przesyłania strumieniowego. Nie można podać tabel ze specyfikacją czasową w przypadku użycia ze
STREAM
słowem kluczowym. Źródła przesyłania strumieniowego są najczęściej używane w definicjach tabel przesyłania strumieniowego.-
Łączy co najmniej dwie relacje przy użyciu sprzężenia.
-
Dotyczy: Databricks SQL Databricks Runtime 12.2 LTS i nowsze.
Używane do perspektywy danych; Zagregowane wartości można uzyskać na podstawie określonej wartości kolumny.
Przed rozpoczęciem pracy z usługą Databricks Runtime 12.0 funkcja PIVOT
FROM
-
Dotyczy: Databricks SQL Databricks Runtime 12.2 LTS i nowsze.
Używane do perspektywy danych; Można podzielić wiele grup kolumn na wiersze.
[LATERAL]table_valued_function_invocation
Wywołuje funkcję z wartością tabeli. Aby odwołać się do kolumn uwidocznionych przez poprzednią
table_reference
klauzulęFROM
, należy określić wartośćLATERAL
.-
Definiuje tabelę śródliniową.
[LATERAL] ( zapytanie )
Oblicza odwołanie do tabeli przy użyciu zapytania. Kwerenda poprzedzona
LATERAL
prefiksem może odwoływać się do kolumn uwidocznionych przez poprzedniątable_reference
klauzulęFROM
. Taka konstrukcja jest nazywana skorelowanym lub zależnym zapytaniem.-
Opcjonalnie zmniejsz rozmiar zestawu wyników, próbkując tylko ułamek wierszy.
-
Opcjonalnie określa etykietę dla elementu
table_reference
. Jeśli parametrtable_alias
zawieracolumn_identifier
ich liczbę, musi być zgodna z liczbą kolumn w elem.table_reference
Wybieranie w tabeli delty
Oprócz standardowych SELECT
opcji tabele delty obsługują opcje podróży czasowej opisane w tej sekcji. Aby uzyskać szczegółowe informacje, zobacz Praca z historią tabel usługi Delta Lake.
Składnia aparatu AS OF
table_identifier TIMESTAMP AS OF timestamp_expression
table_identifier VERSION AS OF version
-
timestamp_expression
może być jednym z:-
'2018-10-18T22:15:12.013Z'
, czyli ciąg, który można rzutować na znacznik czasu cast('2018-10-18 13:36:32 CEST' as timestamp)
-
'2018-10-18'
, czyli ciąg daty current_timestamp() - interval 12 hours
date_sub(current_date(), 1)
- Dowolne inne wyrażenie, które jest lub można rzutować na znacznik czasu
-
-
version
to długa wartość, którą można uzyskać z danych wyjściowych elementuDESCRIBE HISTORY table_spec
.
Ani nie timestamp_expression
version
może być podzapytaniem.
Przykład
> SELECT * FROM events TIMESTAMP AS OF '2018-10-18T22:15:12.013Z'
> SELECT * FROM events VERSION AS OF 123
Składnia aparatu @
@
Użyj składni, aby określić znacznik czasu lub wersję. Znacznik czasu musi być w yyyyMMddHHmmssSSS
formacie. Możesz określić wersję po @
, poprzedzając v
element do wersji. Aby na przykład wysłać zapytanie o wersję 123
tabeli events
, określ wartość events@v123
.
Przykład
> SELECT * FROM events@20190101000000000
> SELECT * FROM events@v123
Przykłady
-- Return a data set from a storage location using a credential.
> SELECT * FROM `csv`.`spreadsheets/data.csv` WITH(CREDENTIAL some_credential);
-- Select from a jdbc data source while controlling the fetch size.
> SELECT * FROM jdbcTable WITH(fetchSize = 0);
-- 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