Bagikan melalui


Ekspresi SQL

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime

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

Sintaks

{ literal |
  named_parameter_marker |
  unnamed_parameter_marker |
  column_reference |
  field_reference |
  parameter_reference |
  CAST expression |
  CASE expression |
  COLLATE 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 tabel atau alias kolom.

  • field_reference

    Referensi ke bidang dalam jenis STRUCT.

  • parameter_reference

    Referensi ke parameter fungsi yang ditentukan pengguna SQL dari dalam tubuh fungsi. Referensi dapat menggunakan nama parameter tanpa kualifikasi atau mengkualifikasi nama dengan nama fungsi. Parameter merupakan cakupan terluar dalam menyelesaikan identifikasi.

  • Ekspresi CAST

    Ekspresi yang mengubah argumen ke tipe yang berbeda.

  • Pernyataan CASE

    Ekspresi yang memungkinkan evaluasi bersyarat.

  • ekspresi COLLATE

    Ekspresi yang melampirkan kolate eksplisit ke ekspresi string.

  • 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 wajib 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 maksimal 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 Kolom, bidang, parameter, dan resolusi 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 tempat yang biasanya memerlukan literal.

Ekspresi boolean

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

Kueri skalar

Ekspresi dalam bentuk ( 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

Suatu ekspresi yang tidak mengandung query, seperti kueri subacak 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}}