Sdílet prostřednictvím


Referenční informace k tabulce

Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime

Odkaz na tabulku je zprostředkující výsledná tabulka v rámci SQL. Lze ji odvodit z jiných operátorů, jako jsou funkce, spojení nebo poddotaz, odkazovat přímo na základní tabulku nebo ji vytvořit jako vloženou tabulku.

Syntaxe

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

  • table_name

    Identifikuje tabulku, která může obsahovat dočasnou specifikaci. Podrobnosti najdete v tématu Práce s historií tabulek Delta Lake.

    Pokud tabulku nenajdete, Azure Databricks vyvolá TABLE_OR_VIEW_NOT_FOUND chybu.

    Další informace o překladu názvů najdete v tématu Sloupec, pole, parametr a rozlišení proměnných.

  • view_name

    Identifikuje zobrazení nebo běžný výraz tabulky (CTE). Pokud se zobrazení nenašlo, Azure Databricks vyvolá chybu TABLE_OR_VIEW_NOT_FOUND .

    Další informace o překladu názvů najdete v tématu Sloupec, pole, parametr a rozlišení proměnných.

  • PROUD

    Vrátí tabulku nebo funkci s hodnotou tabulky jako zdroj streamování. Tabulky nelze poskytnout s dočasnou specifikací při použití s klíčovým slovem STREAM . Zdroje streamování se nejčastěji používají v definicích streamovaných tabulek.

  • PŘIPOJIT

    Kombinuje dvě nebo více relací pomocí spojení.

  • ČEP

    Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 12.2 LTS a vyšší.

    Používá se pro perspektivu dat; Agregované hodnoty můžete získat na základě konkrétní hodnoty sloupce.

    Před databricks Runtime 12.0 PIVOT je omezený na SELECT podle FROM klauzule.

  • PŘEVÉST NA ŘÁDKY

    Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 12.2 LTS a vyšší.

    Používá se pro perspektivu dat; Můžete rozdělit více skupin sloupců na řádky.

  • [LATERAL] table_valued_function_invocation

    Vyvolá funkci s hodnotou tabulky. Chcete-li odkazovat na sloupce vystavené předchozím table_reference v stejné FROM klauzuli, musíte zadat LATERAL.

  • HODNOTY

    Definuje vloženou tabulku.

  • [LATERAL] ( dotaz )

    Vypočítá odkaz na tabulku pomocí dotazu. Dotaz s předponou LATERAL může odkazovat na sloupce vystavené předchozím table_reference ve stejné FROM klauzuli. Takový konstruktor se nazývá korelovaný nebo závislý dotaz.

  • TABLESAMPLE

    Volitelně můžete zmenšit velikost sady výsledků pouze vzorkováním zlomku řádků.

  • table_alias

    Volitelně určuje popisek pro objekt table_reference. table_alias Je-li jejich počet součástí column_identifiermusí odpovídat počtu sloupců v sadě table_reference.

Výběr v tabulce Delta

Kromě standardních SELECT možností tabulky Delta podporují možnosti časového cestování popsané v této části. Podrobnosti najdete v tématu Práce s historií tabulek Delta Lake.

Syntaxe AS OF

table_identifier TIMESTAMP AS OF timestamp_expression

table_identifier VERSION AS OF version
  • timestamp_expression může být libovolná z těchto možností:
    • '2018-10-18T22:15:12.013Z'to znamená řetězec, který lze přetypovat na časové razítko.
    • cast('2018-10-18 13:36:32 CEST' as timestamp)
    • '2018-10-18'to znamená řetězec kalendářního data.
    • current_timestamp() - interval 12 hours
    • date_sub(current_date(), 1)
    • Jakýkoli jiný výraz, který je nebo lze přetypovat na časové razítko
  • version je dlouhá hodnota, kterou lze získat z výstupu DESCRIBE HISTORY table_spec.

version Ani timestamp_expression nemůže být poddotaz.

Příklad

> SELECT * FROM events TIMESTAMP AS OF '2018-10-18T22:15:12.013Z'

> SELECT * FROM delta.`/mnt/delta/events` VERSION AS OF 123

Syntaxe @

@ Pomocí syntaxe zadejte časové razítko nebo verzi. Časové razítko musí být ve yyyyMMddHHmmssSSS formátu. Verzi @ můžete zadat tak, že ji předejdete v . Pokud chcete například zadat dotaz na verzi 123 tabulky events, zadejte events@v123.

Příklad

> SELECT * FROM events@20190101000000000

> SELECT * FROM events@v123

Příklady

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