SAP HANA Union & Union All: OperaContoh tor
โก Ringkasan Cerdas
SAP HANA OperaOperator `tor` melakukan perhitungan, perbandingan nilai, atau penugasan di dalam SQL. Terdapat enam keluarga operator: unary dan binary, aritmatika, string, perbandingan, logika, dan himpunan seperti UNION dan INTERSECT.

SAP HANA Operator dapat digunakan untuk perhitungan, perbandingan nilai atau untuk menetapkan nilai.
SAP HANA Operatorso
- Uner dan Biner Operator
- Hitung Operator
- String Operatorso
- Perbandingan Operator
- logis Operator
- set Operator
Setiap operator mengembalikan nilai, itulah sebabnya operator dapat bersarang di dalam satu sama lain. Urutan evaluasinya ditentukan oleh prioritas, yang akan dijelaskan setelah masing-masing kelompok operator.
Uner dan Biner Operator
| Operator | Operaproduksi | Deskripsi |
|---|---|---|
| unary | Operator Unary berlaku untuk satu operan | Operator plus unary (+) Operator negasi unary (-) Negasi logis (NOT) |
| Biner | Biner Operator berlaku pada dua operan | Operator perkalian ( *, / ) Operator penjumlahan ( +,- ) Operator perbandingan ( =,!=,<,>,<=,>=) Operator logika ( AND, OR ) |
Hitung Operator
- Penambahan (+)
- Subtraction (-)
- Perkalian (*)
- Divisi ( / )
String Operator
Sebuah benang Operator adalah operator penggabungan yang menggabungkan dua item seperti string, ekspresi atau konstanta menjadi satu.
Dua Batang Vertikal โ||โ digunakan sebagai operator penggabungan.
Perbandingan Operator
Operator perbandingan digunakan untuk membandingkan dua operand. Berikut adalah daftar operator perbandingan Operauntuk-
- Sama dengan ( = )
- Lebih besar dari ( > )
- Less Dari ( < )
- Lebih besar dari atau sama dengan ( >= )
- Less lebih besar atau sama dengan ( <= )
- Tidak Sama (!= , <> )
logis Operator
Operator logika digunakan dalam kriteria pencarian.
Misal kondisi WHERE1 DAN/OR/NOT kondisi2
Di bawah ini adalah daftar operator logika โ
- DAN โ (misalnya DI MANA kondisi1 DAN kondisi2)
Jika Kondisi1 DAN Kondisi2 keduanya benar, maka kondisi Gabungkan benar, jika tidak maka akan salah. - ATAU โ (misalnya, DI MANA kondisi1 ATAU kondisi2)
Jika Kondisi1 ATAU Kondisi2 benar, maka kondisi gabungan adalah benar atau salah jika kedua Kondisi salah. - TIDAK โ (contoh: kondisi DI MANA TIDAK)
BUKAN kondisi benar Jika Kondisi salah.
set Operatorso
- UNION โ Menggabungkan dua atau lebih pernyataan select atau query tanpa duplikat.
- UNION ALL โ Menggabungkan dua atau lebih pernyataan select atau query, termasuk semua baris duplikat.
- INTERSECT โ Menggabungkan dua atau lebih pernyataan select atau query, dan mengembalikan semua baris yang sama.
- KECUALI โ Mengambil output dari kueri pertama dan menghapus baris yang dipilih oleh kueri kedua.
Misalnya Saya memiliki dua tabel (tabel1, tabel2) yang beberapa nilainya sama.
Kami menggunakan operator Set (Union, Union ALL, Intersect, kecuali) untuk dua tabel ini SQL seperti di bawah ini -
Buat Tabel1- Skrip SQL
CREATE COLUMN TABLE DHK_SCHEMA.TABLE1 ( ELEMENT CHAR(1), PRIMARY KEY (ELEMENT) ); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('P'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('Q'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('R'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('S'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('T');
Buat Tabel2- Skrip SQL
CREATE COLUMN TABLE DHK_SCHEMA.TABLE2 ( ELEMENT CHAR(1), PRIMARY KEY (ELEMENT) ); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('S'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('T'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('U'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('V'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('W');
Note: Di sini โDHK_SCHEMAโ adalah nama skema, pengguna dapat mengubah nama skema SQL demikian.
set Operauntuk Contohnya seperti di bawah ini
| Operator | Permintaan SQL | Keluaran | penggunaan |
|---|---|---|---|
| PERSATUAN | MEMILIH * DARI ( MEMILIH ELEMEN DARI DHK_SCHEMA.TABEL1 PERSATUAN MEMILIH ELEMEN DARI DHK_SCHEMA.TABEL2 ) DIPESAN OLEH ELEMEN; |
Gabungkan Hasil dari dua atau lebih kueri tanpa duplikat. | |
| UNI SEMUA | MEMILIH * DARI ( MEMILIH ELEMEN DARI DHK_SCHEMA.TABEL1 UNI SEMUA MEMILIH ELEMEN DARI DHK_SCHEMA.TABEL2 ) DIPESAN OLEH ELEMEN; |
Gabungkan Hasil dari dua atau lebih kueri dengan semua duplikat. | |
| MEMOTONG | MEMILIH * DARI ( MEMILIH ELEMEN DARI DHK_SCHEMA.TABEL1 MEMOTONG MEMILIH ELEMEN DARI DHK_SCHEMA.TABEL2 ) DIPESAN OLEH ELEMEN; |
Gabungkan Hasil dari dua atau lebih kueri dengan semua baris umum. | |
| KECUALI | MEMILIH * DARI ( MEMILIH ELEMEN DARI DHK_SCHEMA.TABEL1 KECUALI MEMILIH ELEMEN DARI DHK_SCHEMA.TABEL2 ) DIPESAN OLEH ELEMEN; |
Mengambil keluaran dari kueri pertama dan menghapus baris yang dipilih oleh kueri kedua |
set OperaAturan dan Persyaratan tor
Operator himpunan terlihat sederhana tetapi mudah menolak kueri, karena mereka membandingkan seluruh himpunan hasil, bukan nilai individual. Empat aturan mengatur operator ini.
- Jumlah kolom harus sama. Kedua pernyataan SELECT harus mengembalikan jumlah kolom yang sama. Ketidaksesuaian akan langsung menyebabkan kegagalan, dan pesan kesalahan akan menyebutkan posisi kolom, bukan nama kolom.
- Tipe data harus kompatibel. Kolom pertama dari kueri pertama dicocokkan dengan kolom pertama dari kueri kedua, dan seterusnya berdasarkan posisi, bukan berdasarkan nama. Tipe numerik yang kompatibel dikonversi secara otomatis; kolom karakter yang dicocokkan dengan tanggal tidak dikonversi.
- Nama kolom berasal dari kueri pertama. Apa pun sebutan kolom yang digunakan dalam pernyataan kedua akan diabaikan dalam output, yang mengejutkan siapa pun yang membaca hasil UNION untuk pertama kalinya.
- ORDER BY berlaku untuk seluruh hasil. Bagian ini seharusnya diletakkan di akhir, setelah SELECT terakhir, dan itulah mengapa contoh-contoh di atas membungkus union dalam SELECT terluar.
Perbedaan performa antara UNION dan UNION ALL perlu diperhatikan. UNION harus mengurutkan atau melakukan hashing pada hasil gabungan untuk menghilangkan duplikat, sedangkan UNION ALL hanya menambahkan. Jika duplikat tidak mungkin terjadi, atau dapat diterima, UNION ALL secara signifikan lebih cepat pada tabel besar. Definisi kolom yang digunakan dalam tabel ini dibahas dalam SAP Tipe data HANA.
OperaPrioritas dalam SAP HANA SQL
Ketika beberapa operator muncul dalam satu ekspresi, prioritas menentukan operator mana yang dievaluasi terlebih dahulu. Kesalahan dalam hal ini akan menghasilkan kueri yang berjalan sempurna tetapi mengembalikan baris yang salah, yang jauh lebih berbahaya daripada kesalahan sintaksis.
| Memesan | Operatorso | Kategori |
|---|---|---|
| 1 | () | Tanda kurung, selalu dievaluasi terlebih dahulu |
| 2 | + โ (operand tunggal) | Plus dan negasi unary |
| 3 | * / | Perkalian dan pembagian |
| 4 | + โ || | Penambahan, subtraction, penggabungan |
| 5 | = != < > <= >= | Perbandingan |
| 6 | JANGAN | Negasi logis |
| 7 | DAN | Konjungsi logis |
| 8 | OR | Disjungsi logis |
Jebakan klasik terletak pada baris 7 dan 8. Karena AND mengikat lebih kuat daripada OR, kondisi tersebut DI MANA wilayah = 'TIMUR' ATAU wilayah = 'BARAT' DAN status = 'BUKA' dibaca sebagai TIMUR, atau BARAT yang terbukaSetiap baris timur dikembalikan tanpa memperhatikan statusnya. Menambahkan tanda kurung di sekitar dua pengujian wilayah akan memperbaikinya.
๐ก Kiat: Tambahkan tanda kurung di sekitar setiap kondisi AND dan OR campuran, bahkan ketika prioritas sudah memberikan hasil yang diinginkan. Kueri menjadi mudah dipahami dan tetap berlaku meskipun diedit oleh pengembang lain di kemudian hari.
Sintaks pernyataan sehari-hari dibahas di sini. SAP HANA SQL tutorial, dan platform yang lebih luas di SAP Tutorial HANA series.





