Partilhar via


Referência da tabela

Aplica-se a:marcado com sim Databricks SQL marcado com sim Databricks Runtime

Uma referência de tabela é uma tabela de resultados intermediária dentro do SQL. Ele pode ser derivado de outros operadores, como funções, junções ou uma subconsulta, fazer referência a uma tabela base diretamente ou ser construído como uma tabela embutida.

Sintaxe

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

Parâmetros

  • table_name

    Identifica uma tabela que pode conter uma especificação temporal . Veja Trabalhar com o histórico da tabela Delta Lake para obter detalhes.

    Se a tabela não puder ser encontrada, o Azure Databricks gerará um erro TABLE_OR_VIEW_NOT_FOUND .

    Consulte a resolução de colunas, campos, parâmetros e variáveis em para mais informações sobre a resolução de nomes.

    Aplica-se a: ** marcado sim Databricks Runtime 16.0 e posteriores

    table_name pode incluir uma especificação de opções.

  • view_name

    Identifica uma vista ou uma expressão de tabela comum (CTE). Se a vista não puder ser encontrada, Azure Databricks gera um erro TABLE_OR_VIEW_NOT_FOUND.

    Consulte a resolução de colunas, campos, parâmetros e variáveis em para mais informações sobre a resolução de nomes.

  • STREAMING

    Retorna uma tabela ou uma função valorizada em tabela como fonte de streaming. As tabelas não podem ser fornecidas com uma especificação temporal quando usadas com a palavra-chave STREAM. As fontes de streaming são mais comumente usadas nas definições de tabelas de streaming.

  • JOIN

    Combina duas ou mais relações usando um join.

  • PIVOT

    Aplica-se a:check marked yes Databricks SQL check marked yes Databricks Runtime 12.2 LTS e superior.

    Usado para perspetiva de dados; Você pode obter os valores agregados com base no valor específico da coluna.

    Antes do Databricks Runtime 12.0, PIVOT é limitado a SELECT seguindo a cláusula FROM.

  • UNPIVOT

    Aplica-se a:check marked yes Databricks SQL check marked yes Databricks Runtime 12.2 LTS e superior.

    Usado para perspetiva de dados; Você pode dividir vários grupos de colunas em linhas.

  • [LATERAL]invocação_de_função_de_valores_de_tabela

    Invoca uma função com valor de tabela. Para se referir a colunas expostas por um table_reference anterior na mesma cláusula FROM, deve-se especificar LATERAL.

  • VALUES

    Define uma tabela embutida.

  • [LATERAL] ( consulta )

    Calcula uma referência de tabela usando uma consulta. Uma consulta prefixada por LATERAL pode fazer referência a colunas expostas por um table_reference anterior na mesma cláusula FROM. Tal construção é chamada de consulta correlacionada ou dependente.

  • TABLESAMPLE

    Opcionalmente, reduza o tamanho do conjunto de resultados amostrando apenas uma fração das linhas.

  • alias_da_tabela

    Opcionalmente, especifica um rótulo para o table_reference. Se o table_alias incluir column_identifiers, o seu número deve corresponder ao número de colunas no table_reference.

Selecionar na tabela Delta

Além das opções padrão de SELECT, as tabelas Delta suportam as opções de viagem no tempo descritas nesta seção. Para obter detalhes, consulte Trabalhar com o histórico da tabela Delta Lake.

AS OF Sintaxe

table_identifier TIMESTAMP AS OF timestamp_expression

table_identifier VERSION AS OF version
  • timestamp_expression pode ser qualquer um:
    • '2018-10-18T22:15:12.013Z', ou seja, uma cadeia de caracteres que pode ser convertida em um carimbo de data/hora
    • cast('2018-10-18 13:36:32 CEST' as timestamp)
    • '2018-10-18', ou seja, uma cadeia de caracteres de data
    • current_timestamp() - interval 12 hours
    • date_sub(current_date(), 1)
    • Qualquer outra expressão que seja ou possa ser convertida em um carimbo de data/hora
  • version é um valor longo que pode ser obtido a partir da saída de DESCRIBE HISTORY table_spec.

Nem timestamp_expressionversion podem ser subconsultas.

Exemplo

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

> SELECT * FROM events VERSION AS OF 123

@ Sintaxe

Use a @ sintaxe para especificar o carimbo de data/hora ou a versão. O carimbo de data/hora deve estar no yyyyMMddHHmmssSSS formato. Você pode especificar uma versão depois @ antecipando a v para a versão. Por exemplo, para consultar a versão 123 para a tabela events, especifique events@v123.

Exemplo

> SELECT * FROM events@20190101000000000

> SELECT * FROM events@v123

Exemplos


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