Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menggabungkan Keputusan Pertanyaan SQL dalam Oracle?

Bagaimanakah Saya Boleh Menggabungkan Keputusan Pertanyaan SQL dalam Oracle?

Patricia Arquette
Patricia Arquetteasal
2024-12-31 10:20:11260semak imbas

How Can I Concatenate SQL Query Results in Oracle?

Menggabungkan Hasil daripada Pertanyaan SQL dalam Oracle

Untuk menggabungkan hasil daripada pertanyaan SQL dalam Oracle, anda boleh menggunakan fungsi LISTAGG bersama-sama dengan fungsi CONCAT. Pendekatan ini membolehkan anda menggabungkan nilai daripada berbilang baris ke dalam satu rentetan terhad.

Sebagai contoh, pertimbangkan jadual berikut yang mengandungi data tentang nama dan harga:

| NAME | PRICE |
|---|---|
| A | 2 |
| B | 3 |
| C | 5 |
| D | 9 |
| E | 5 |

Untuk memaparkan semua nilai dalam satu baris, dipisahkan dengan koma, anda boleh menggunakan pertanyaan berikut:

SELECT
  LISTAGG(CONCAT(CONCAT(NAME, ','), PRICE), '|') WITHIN GROUP (ORDER BY NAME) AS CONCATDATA
FROM
  TABLE_NAME;

Begini cara pertanyaan ini berfungsi:

  • Fungsi LISTAGG digunakan untuk mengagregatkan nilai yang digabungkan daripada setiap baris.
  • Fungsi CONCAT menggabungkan nilai NAME dan PRICE ke dalam satu rentetan.
  • '|' hujah dalam LISTAGG menentukan pembatas (dalam kes ini, koma) untuk digunakan antara nilai yang digabungkan.
  • Klausa WITHIN GROUP memastikan bahawa penggabungan dilakukan dalam kumpulan, dalam kes ini, dikumpulkan mengikut NAME.

Output yang terhasil akan menjadi satu baris dengan semua nilai yang digabungkan dipisahkan oleh koma, seperti yang dikehendaki:

CONCATDATA
--------------------
A,2|B,3|C,5|D,9|E,5|

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Keputusan Pertanyaan SQL dalam Oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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