Aracılığıyla paylaş


tablo referansı

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime

Tablo referansı, SQL içindeki bir ara sonuç tablosudur. Diğer işleçlerden türetilebilir, örneğin işlevler, birleşimler veya alt sorgular , bir temel tabloya doğrudan başvurabilir veya satır içi tablo olarak oluşturulabilir.

Sözdizimi

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

Parametreler

  • table_name

    zamansal belirtimi içerebilen bir tablo tanımlar. Ayrıntılar için bkz. Delta Lake tablo geçmişiyle çalışma.

    Tablo bulunamazsa Azure Databricks bir TABLE_OR_VIEW_NOT_FOUND hatası oluşturur.

    Ad çözümlemesi hakkında daha fazla bilgi için bkz. Sütun, alan, parametre ve değişken çözümleme.

    Şunlar için geçerlidir: ** işaretli evet Databricks Runtime 16.0 ve üzeri

    table_name bir seçenek belirtimi içerebilir.

  • view_name

    Bir görünümü veya ortak tablo ifadesini (CTE) tanımlar. Görünüm bulunamazsa Azure Databricks bir TABLE_OR_VIEW_NOT_FOUND hatası oluşturur.

    Ad çözümlemesi hakkında daha fazla bilgi için bkz. Sütun, alan, parametre ve değişken çözümleme.

  • DERE

    Akış kaynağı olarak bir tablo veya tablo değerli bir işlev döndürür. STREAM anahtar sözcüğüyle kullanıldığında tablolara zamansal belirtim sağlanamaz. Akış kaynakları en yaygın olarak akış tablolarının tanımlarında kullanılır.

  • JOIN

    Bir join işlemi kullanarak iki veya daha fazla ilişkiyi birleştirir.

  • PIVOT

    Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 12.2 LTS ve üzeri.

    Veri perspektifi için kullanılır; toplanan değerleri belirli bir sütun değerine göre alabilirsiniz.

    Databricks Runtime 12.0'dan önce, PIVOT, SELECT yan tümcesinden sonra FROM ile sınırlıdır.

  • UNPIVOT

    Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 12.2 LTS ve üzeri.

    Veri perspektifi için kullanılır; birden çok sütun grubunu satırlara bölebilirsiniz.

  • [YANAL]table_valued_function_invocation

    Tablo değerli bir işlevi çağırır. Aynı table_reference cümleciğindeki önceki bir FROM tarafından kullanıma sunulan sütunlara başvurmak için LATERAL'yi belirtmeniz gerekir.

  • VALUES

    Satır içi bir tablo tanımlar.

  • [YANAL] ( sorgu )

    Sorgu kullanarak tablo referansını hesaplar. LATERAL ile başlayan bir sorgu, aynı table_reference ifadesinde öncesinde gelen bir FROM tarafından kullanıma sunulan sütunlara başvurabilir. Böyle bir yapı bağıntılı veya bağımlı sorgu olarak adlandırılır.

  • TABLESAMPLE

    İsteğe bağlı olarak, satırların yalnızca bir bölümünü örneklemek suretiyle sonuç kümesinin boyutunu küçültün.

  • tablo_takma_adı

    İsteğe bağlı olarak için table_referencebir etiket belirtir. table_alias column_identifieriçeriyorsa, sayılarının table_referencesütun sayısıyla eşleşmesi gerekir.

Delta tablosunda seç

Delta tabloları, standart SELECT seçeneklerine ek olarak bu bölümde açıklanan zaman yolculuğu seçeneklerini destekler. Ayrıntılar için bkz. Delta Lake tablo geçmişiyle çalışma.

AS OF söz dizimi

table_identifier TIMESTAMP AS OF timestamp_expression

table_identifier VERSION AS OF version
  • timestamp_expression şu türlerden herhangi biri olabilir:
    • '2018-10-18T22:15:12.013Z', başka bir ifadeyle zaman damgasına atanabilen bir dizedir
    • cast('2018-10-18 13:36:32 CEST' as timestamp)
    • '2018-10-18', yani bir tarih dizesi
    • current_timestamp() - interval 12 hours
    • date_sub(current_date(), 1)
    • Zaman damgasına atanabilen veya atanabilen diğer tüm ifadeler
  • version , çıkışından elde edilebilen uzun bir değerdir DESCRIBE HISTORY table_spec.

Alt timestamp_expression sorgular da version olamaz.

Örnek

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

> SELECT * FROM events VERSION AS OF 123

@ söz dizimi

Zaman damgasını @ veya sürümü belirtmek için söz dizimini kullanın. Zaman damgası biçiminde yyyyMMddHHmmssSSS olmalıdır. sürümünden sonra @ bir ön koşula bağlanarak bir v sürüm belirtebilirsiniz. Örneğin, 123tablosunun events numaralı sürümünü sorgulamak için events@v123belirtin.

Örnek

> SELECT * FROM events@20190101000000000

> SELECT * FROM events@v123

Örnekler


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