Ekspresi SQL
Berlaku untuk: Databricks SQL 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.
-
Tempat penampung bernama dan yang diketik untuk nilai yang disediakan oleh API yang mengirimkan pernyataan SQL.
-
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.
-
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 yang mentransmisikan argumen ke jenis yang berbeda.
-
Ekspresi yang memungkinkan evaluasi bersyarat.
expr
Ekspresi itu sendiri yang dikombinasikan dengan
operator
, atau yang merupakan argumen untuk suatu fungsi.-
Operator unary atau biner.
-
Referensi ke elemen array atau kunci peta.
-
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.-
( 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}}