SAP HANA - Ekspresi SQL

Ekspresi digunakan untuk mengevaluasi klausa untuk mengembalikan nilai. Ada ekspresi SQL berbeda yang dapat digunakan di HANA -

  • Ekspresi Kasus
  • Ekspresi Fungsi
  • Ekspresi Agregat
  • Subkueri dalam Ekspresi

Ekspresi Kasus

Ini digunakan untuk melewatkan beberapa kondisi dalam ekspresi SQL. Ini memungkinkan penggunaan logika IF-ELSE-THEN tanpa menggunakan prosedur dalam pernyataan SQL.

Contoh

SELECT COUNT( CASE WHEN sal < 2000 THEN 1 ELSE NULL END ) count1,
COUNT( CASE WHEN sal BETWEEN 2001 AND 4000 THEN 1 ELSE NULL END ) count2,
COUNT( CASE WHEN sal > 4000 THEN 1 ELSE NULL END ) count3 FROM emp;

Pernyataan ini akan mengembalikan count1, count2, count3 dengan nilai integer sesuai kondisi yang dilalui.

Ekspresi Fungsi

Ekspresi fungsi melibatkan fungsi built-in SQL untuk digunakan dalam Ekspresi.

Ekspresi Agregat

Fungsi agregat digunakan untuk melakukan penghitungan kompleks seperti Jumlah, Persentase, Min, Maks, Hitung, Mode, Median, dll. Ekspresi Agregat menggunakan fungsi Agregat untuk menghitung nilai tunggal dari beberapa nilai.

Aggregate Functions- Jumlah, Hitung, Minimum, Maksimum. Ini diterapkan pada nilai ukuran (fakta) dan selalu dikaitkan dengan dimensi.

Fungsi agregat umum termasuk -

  • Rata-rata ()
  • Hitung ()
  • Maksimum ()
  • Median ()
  • Minimum ()
  • Mode ()
  • Jumlah ()

Subkueri dalam Ekspresi

Subkueri sebagai ekspresi adalah pernyataan Select. Saat digunakan dalam ekspresi, ini mengembalikan nilai nol atau satu.

Sebuah subquery digunakan untuk mengembalikan data yang akan digunakan dalam query utama sebagai syarat untuk lebih membatasi data yang akan diambil.

Subkueri dapat digunakan dengan pernyataan SELECT, INSERT, UPDATE, dan DELETE bersama dengan operator seperti =, <,>,> =, <=, IN, BETWEEN dll.

Ada beberapa aturan yang harus diikuti subkueri -

  • Subkueri harus diapit dalam tanda kurung.

  • Subkueri hanya dapat memiliki satu kolom di klausa SELECT, kecuali beberapa kolom berada di kueri utama untuk subkueri untuk membandingkan kolom yang dipilihnya.

  • ORDER BY tidak dapat digunakan dalam subkueri, meskipun kueri utama dapat menggunakan ORDER BY. GROUP BY dapat digunakan untuk melakukan fungsi yang sama seperti ORDER BY di subkueri.

  • Subkueri yang mengembalikan lebih dari satu baris hanya dapat digunakan dengan beberapa operator nilai, seperti operator IN.

  • Daftar SELECT tidak dapat menyertakan referensi apa pun ke nilai yang dievaluasi ke BLOB, ARRAY, CLOB, atau NCLOB.

  • Sebuah subkueri tidak bisa langsung diapit dalam fungsi set.

  • Operator BETWEEN tidak dapat digunakan dengan subquery; namun, operator ANTARA dapat digunakan di dalam subkueri.

Subkueri dengan Pernyataan SELECT

Subkueri paling sering digunakan dengan pernyataan SELECT. Sintaks dasarnya adalah sebagai berikut -

Contoh

SELECT * FROM CUSTOMERS
WHERE ID IN (SELECT ID
FROM CUSTOMERS
WHERE SALARY > 4500) ;
+----+----------+-----+---------+----------+
| ID | NAME     | AGE | ADDRESS | SALARY   |
+----+----------+-----+---------+----------+
| 4  | Chaitali | 25  | Mumbai  | 6500.00  |
| 5  | Hardik   | 27  | Bhopal  | 8500.00  |
| 7  | Muffy    | 24  | Indore  | 10000.00 |
+----+----------+-----+---------+----------+