Ekspresi SQL

Berlaku untuk:check marked yes Databricks SQL check marked yes Databricks Runtime

Ekspresi adalah rumus yang menghitung hasil berdasarkan literal, atau referensi ke kolom, bidang, atau referensi variabel menggunakan fungsi atau operator.

Sintaks

{ literal |
  named_parameter_marker |
  unnamed_parameter_marker |
  column_reference |
  field_reference |
  parameter_reference |
  CAST expression |
  CASE expression |
  expr operator expr |
  operator expr |
  expr [ expr ] |
  function_invocation |
  ( expr ) |
  ( expr, expr [, ... ] ) |
  scalar_subquery }

scalar_subquery
  ( query )

Tanda kurung expr [ expr ] merupakan tanda kurung yang sebenarnya dan tidak menunjukkan sintaksis opsional.

Parameter

  • harfiah

    Literal dari jenis yang dijelaskan dalam tipe Data.

  • named_parameter_marker

    Tempat penampung bernama dan yang diketik untuk nilai yang disediakan oleh API yang mengirimkan pernyataan SQL.

  • unnamed_parameter_marker

    Tempat penampung yang tidak disebutkan namanya dan diketik untuk nilai yang disediakan oleh API yang mengirimkan pernyataan SQL.

  • column_reference

    Referensi ke kolom dalam alias tabel atau kolom.

  • field_reference

    Referensi ke bidang dalam jenis STRUCT.

  • parameter_reference

    Referensi ke parameter fungsi yang ditentukan pengguna SQL dari dengan isi fungsi. Referensi dapat menggunakan nama parameter yang tidak memenuhi syarat atau memenuhi syarat nama dengan nama fungsi. Parameter merupakan cakupan terluar saat menyelesaikan pengidentifikasi.

  • Ekspresi CAST

    Ekspresi yang mentransmisikan argumen ke jenis yang berbeda.

  • Ekspresi CASE

    Ekspresi yang memungkinkan evaluasi bersyarat.

  • expr

    Ekspresi itu sendiri yang dikombinasikan dengan operator, atau yang merupakan argumen untuk suatu fungsi.

  • operator

    Operator unary atau biner.

  • expr [ expr ]

    Referensi ke elemen array atau kunci peta.

  • function_invocation

    Pemanggilan fungsi bawaan atau yang ditentukan pengguna.

    Lihat function_invocation untuk detailnya.

  • ( expr )

    Prioritas yang diberlakukan yang mengesampingkan prioritas operator.

  • ( expr, expr [, … ] )

    Membuat struct dari dua atau lebih bidang. Notasi ini sinonim dengan fungsi struct.

  • scalar_subquery:

    • ( query )

      Ekspresi berdasarkan kueri yang harus mengembalikan satu kolom dan paling banyak satu baris.

Halaman untuk setiap fungsi dan operator menjelaskan jenis data yang diharapkan parameternya. Azure Databricks melakukan transmisi implisit ke jenis yang diharapkan menggunakan aturan jenis data SQL. Jika operator atau fungsi tidak valid untuk argumen yang disediakan, Azure Databricks menimbulkan kesalahan.

Lihat Resolusi kolom, bidang, parameter, dan variabel untuk informasi selengkapnya tentang resolusi nama.

Ekspresi konstan

Ekspresi yang hanya didasarkan pada fungsi literal atau deterministik tanpa argumen. Azure Databricks dapat menjalankan ekspresi dan menggunakan konstanta yang dihasilkan di mana literal biasa diperlukan.

Ekspresi boolean

Ekspresi dengan jenis hasil BOOLEAN. Ekspresi boolean juga kadang-kadang disebut sebagai kondisi atau predikat.

Kueri bertumpuk skalar

Ekspresi dari formulir ( query ). Kueri harus mengembalikan tabel yang memiliki satu kolom dan paling banyak satu baris.

Jika kueri tidak mengembalikan baris, hasilnya adalah NULL. Jika kueri mengembalikan lebih dari satu baris, Azure Databricks mengembalikan kesalahan. Jika tidak, hasilnya adalah nilai yang dikembalikan oleh kueri.

Ekspresi sederhana

Ekspresi yang tidak mengandung query, seperti kueri bertumpuk skalar atau predikat EXISTS.

Contoh

> SELECT 1;
  1

> SELECT (SELECT 1) + 1;
  2

> SELECT 1 + 1;
  2

> SELECT 2 * (1 + 2);
  6

> SELECT 2 * 1 + 2;
  4

> SELECT substr('Spark', 1, 2);
  Sp

> SELECT c1 + c2 FROM VALUES(1, 2) AS t(c1, c2);
  3

> SELECT a[1] FROM VALUES(array(10, 20)) AS T(a);
  20

> SELECT true;
  true

> SELECT (c1, (c2, c3)) FROM VALUES(1, 2, 3) AS T(c1, c2, c3);
  {"c1":1,"col2":{"c2":2,"c3":3}}