Rumah > pangkalan data > Oracle > Cara alternatif untuk menulis kesatuan dalam oracle

Cara alternatif untuk menulis kesatuan dalam oracle

下次还敢
Lepaskan: 2024-05-02 23:18:50
asal
558 orang telah melayarinya

Cara alternatif menulis UNION dalam Oracle termasuk: penambahan langsung (+): sertai hasil pertanyaan, mengekalkan baris pendua. UNION ALL: Sertai hasil pertanyaan, mengekalkan semua baris. DENGAN subquery: Cipta jadual sementara, mengandungi hasil pertanyaan, dan kemudian tanya jadual sementara. CTE: Tentukan jadual atau paparan sementara untuk pertanyaan seterusnya. SQL JOIN: Sertai baris yang berkaitan dalam berbilang jadual.

Cara alternatif untuk menulis kesatuan dalam oracle

Cara penulisan alternatif UNION dalam Oracle

Tambahan terus (+)

Alternatif paling mudah untuk UNION ialah menggunakan operator tambah (+). Ia menyertai hasil dua pertanyaan tetapi tidak mengalih keluar baris pendua.

<code>SELECT * FROM table1 + SELECT * FROM table2;</code>
Salin selepas log masuk

UNION ALL

UNION ALL serupa dengan UNION tetapi ia tidak memadamkan baris pendua. Ia menyertai hasil dua pertanyaan dan termasuk semua baris dalam hasil akhir.

<code>SELECT * FROM table1 UNION ALL SELECT * FROM table2;</code>
Salin selepas log masuk

WITH subquery

WITH subquery membolehkan anda mencipta jadual sementara yang mengandungi hasil dua pertanyaan. Anda kemudian boleh memilih daripada jadual sementara.

<code>WITH tmp_table AS (
  SELECT * FROM table1
  UNION
  SELECT * FROM table2
)
SELECT * FROM tmp_table;</code>
Salin selepas log masuk

Ungkapan Jadual Biasa (CTE)

CTE membolehkan anda menentukan jadual atau pandangan sementara yang boleh digunakan dalam pertanyaan seterusnya. Contoh berikut menggunakan CTE dan bukannya UNION:

<code>WITH tmp_table AS (
  SELECT * FROM table1
)
SELECT * FROM tmp_table UNION
SELECT * FROM table2;</code>
Salin selepas log masuk

SQL JOIN

Untuk UNION yang melibatkan berbilang jadual, anda boleh menggunakan SQL JOIN. Dengan menggunakan syarat sertai, anda boleh menyertai baris berkaitan dalam jadual yang berbeza.

<code>SELECT *
FROM table1
INNER JOIN table2 ON table1.id = table2.id;</code>
Salin selepas log masuk

Pilih kaedah yang paling sesuai

Memilih alternatif kepada UNION bergantung pada keperluan khusus pertanyaan. Berikut ialah beberapa garis panduan am:

  • Jika anda perlu mengalih keluar baris pendua, gunakan UNION.
  • Jika anda tidak perlu mengalih keluar baris pendua, gunakan UNION ALL, penambahan terus atau WITH subquery.
  • Jika anda perlu melakukan KESATUAN antara berbilang jadual, pertimbangkan untuk menggunakan SQL JOIN.

Atas ialah kandungan terperinci Cara alternatif untuk menulis kesatuan dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan