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.

  • โž• Satuan dan Biner: Operator unary membutuhkan satu operand, sedangkan operator binary membutuhkan dua operand.
  • ๐Ÿงฎ Hitung: Penambahan, subtracOperasi perkalian, pembagian, dan operasi lainnya bekerja pada operan numerik.
  • ๐Ÿ”— Penggabungan String: Dua garis vertikal menggabungkan string, ekspresi, atau konstanta menjadi satu nilai tunggal.
  • ๏ธ Perbandingan: Sama dengan, lebih besar, lebih kecil, dan kombinasinya akan menghasilkan nilai kebenaran untuk penyaringan.
  • ๐Ÿ”€ Logis: AND, OR, dan NOT menggabungkan kondisi di dalam klausa WHERE.
  • ๐Ÿงฉ set Operatorsi: UNION menghapus duplikat, UNION ALL mempertahankan duplikat, INTERSECT mengembalikan baris yang sama, EXCEPT mengembalikan sub-baris.tracts.
  • ๐Ÿ“Š Contoh Kerja: Dua tabel yang memiliki nilai yang sama menunjukkan perbedaan keluaran dari setiap operator himpunan.

SAP Operator HANA UNION dan UNION ALL

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.

set Operator masuk SAP HANA

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;

Operator set UNION menghasilkan output

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;

UNION ALL mengatur output operator

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;

INTERSECT mengatur keluaran operator

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;

KECUALI atur keluaran operator

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Pertanyaan Umum Demo Slot

UNION ALL. Perintah ini hanya menambahkan hasilnya, sedangkan UNION harus menghapus duplikat. Gunakan UNION ALL jika duplikat tidak mungkin atau tidak dapat diterima dalam output.

Ya, SAP HANA mengkonversi angka tersebut secara implisit. Wrapping Menggunakan TO_VARCHAR tetap merupakan praktik yang lebih baik, karena formatnya tetap berada di bawah kendali Anda dan bukan format default sesi.

Ya. AI menyatakan kembali kondisi AND dan OR campuran dalam bahasa yang sederhana, yang langsung mengungkapkan apakah grup tersebutping sesuai dengan maksudnya, lalu mengusulkan tanda kurung yang memperbaikinya.

Ya. INTERSECT dan EXCEPT sering ditulis ulang sebagai inner join atau klausa NOT EXISTS, yang dapat menghasilkan performa lebih baik. Bandingkan rencana eksekusi sebelum mengadopsi penulisan ulang tersebut.

Membandingkan apa pun dengan NULL akan menghasilkan "unknown" alih-alih "true" atau "false", sehingga baris tersebut akan difilter. Gunakan IS NULL dan IS NOT NULL sebagai pengganti operator sama dengan.

Ringkaslah postingan ini dengan: