Condividi tramite


riferimento alla tabella

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime

Un riferimento a una tabella è una tabella dei risultati intermedia all'interno di SQL. Può essere derivata da altri operatori, ad esempio funzioni, join o sottoquery, fare riferimento direttamente a una tabella di base o essere costruita come tabella inline.

Sintassi

table_reference
  { table_name [ TABLESAMPLE clause ] [ table_alias ] |
    { STREAM table_name [ table_alias ] | STREAM ( table_name ) [ table_alias ] } |
    view_name [ table_alias ] |
    table_reference JOIN clause |
    table_reference PIVOT clause |
    table_reference UNPIVOT clause |
    [ STREAM ] table_valued_function [ table_alias ] |
    [ LATERAL ] table_valued_function [ table_alias ] |
    VALUES clause |
    [ LATERAL ] ( query ) [ TABLESAMPLE clause ] [ table_alias ] }

Parametri

  • table_name

    Identifica una tabella che può contenere una specifica temporale . Per informazioni dettagliate, vedere Usare la cronologia delle tabelle Delta Lake.

    Se la tabella non è stata trovata, Azure Databricks genera un errore di TABLE_OR_VIEW_NOT_FOUND.

    Per altre informazioni sulla risoluzione dei nomi, vedere colonna, campo, parametro e risoluzione delle variabili.

    Si applica a: ** contrassegnato con un segno di spunta Databricks Runtime 16.0 e versioni successive

    table_name può includere una specifica di opzioni.

  • view_name

    Identifica una vista o un'espressione di tabella comune (CTE). Se non è possibile trovare la vista azure Databricks genera un errore di TABLE_OR_VIEW_NOT_FOUND .

    Per altre informazioni sulla risoluzione dei nomi, vedere colonna, campo, parametro e risoluzione delle variabili.

  • CORRENTE

    Restituisce una tabella o una funzione con valori di tabella come origine di streaming. Le tabelle non possono essere fornite con una specifica temporale se usata con la parola chiave STREAM. Le sorgenti di streaming sono comunemente utilizzate nelle definizioni delle tabelle streaming .

  • JOIN

    Combina due o più relazioni utilizzando un'operazione di join.

  • PIVOT

    Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 12.2 LTS e versioni successive.

    Usato per la prospettiva dei dati; è possibile ottenere i valori aggregati in base a un valore di colonna specifico.

    Prima di Databricks Runtime 12.0 PIVOT è limitato a SELECT dopo la clausola FROM.

  • UNPIVOT

    Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 12.2 LTS e versioni successive.

    Usato per la prospettiva dei dati; è possibile suddividere più gruppi di colonne in righe.

  • [LATERAL]table_valued_function_invocation

    Richiama una funzione con valori di tabella. Per fare riferimento alle colonne esposte da un table_reference precedente nella stessa clausola FROM, è necessario specificare LATERAL.

  • VALUES

    Definisce una tabella in linea.

  • [LATERAL] ( query )

    Calcola un riferimento a una tabella usando una query. Una query preceduta da LATERAL può fare riferimento a colonne esposte da un table_reference precedente nella stessa clausola FROM. Tale costrutto viene chiamato query correlata o dipendente.

  • TABLESAMPLE

    Facoltativamente, ridurre le dimensioni del set di risultati eseguendo solo il campionamento di una frazione delle righe.

  • table_alias

    Facoltativamente, specifica un'etichetta per l'oggetto table_reference. Se il table_alias include column_identifieril relativo numero deve corrispondere al numero di colonne nel table_reference.

Seleziona sulla tabella Delta

Oltre alle opzioni standard di SELECT, le tabelle Delta supportano le opzioni di viaggio del tempo descritte in questa sezione. Per maggiori dettagli, vedere Usare la cronologia delle tabelle Delta Lake.

Sintassi AS OF

table_identifier TIMESTAMP AS OF timestamp_expression

table_identifier VERSION AS OF version
  • timestamp_expression può essere uno qualsiasi di:
    • '2018-10-18T22:15:12.013Z'ovvero una stringa di cui è possibile eseguire il cast a un timestamp
    • cast('2018-10-18 13:36:32 CEST' as timestamp)
    • '2018-10-18', ovvero una stringa di data
    • current_timestamp() - interval 12 hours
    • date_sub(current_date(), 1)
    • Qualsiasi altra espressione che è o può essere eseguita il cast a un timestamp
  • version è un valore long che può essere ottenuto dall'output di DESCRIBE HISTORY table_spec.

timestamp_expressionversion possono essere sottoquery.

Esempio

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

> SELECT * FROM events VERSION AS OF 123

Sintassi @

Usare la @ sintassi per specificare il timestamp o la versione. Il timestamp deve essere in yyyyMMddHHmmssSSS formato . È possibile specificare una versione dopo @ anteponendo una v alla versione. Ad esempio, per eseguire una query sulla versione 123 per la tabella events, specificare events@v123.

Esempio

> SELECT * FROM events@20190101000000000

> SELECT * FROM events@v123

Esempi


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