Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memisahkan Rentetan Dibatasi Koma kepada Berbilang Baris dalam Oracle?

Bagaimana untuk Memisahkan Rentetan Dibatasi Koma kepada Berbilang Baris dalam Oracle?

Barbara Streisand
Lepaskan: 2025-01-22 17:36:15
asal
601 orang telah melayarinya

How to Split Comma-Delimited Strings into Multiple Rows in Oracle?

Pisah rentetan kepada berbilang baris dalam pangkalan data Oracle

Pengenalan

Memisahkan rentetan yang dipisahkan koma kepada berbilang baris ialah tugas biasa dalam pemprosesan data. Dalam Oracle 10g dan 11g, terdapat pelbagai cara untuk mencapai matlamat ini dengan cekap.

Pecahan berbilang lajur

Untuk memisahkan rentetan yang mengandungi berbilang nilai kepada berbilang lajur, anda boleh menggunakan gabungan REGEXP_REPLACE, REGEXP_SUBSTR dan pertanyaan hierarki.

Pertanyaan:

<code class="language-sql">WITH temp AS (
    SELECT name, project, error FROM your_table
)
SELECT
    name,
    project,
    TRIM(REGEXP_SUBSTR(error, '[^,]+', 1, levels.column_value)) AS new_error
FROM
    temp,
    TABLE(CAST(
        MULTISET(
            SELECT level FROM dual CONNECT BY level <= REGEXP_COUNT(error, ',') + 1
        ) AS sys.odcinumberlist
    )) levels
WHERE levels.column_value <= REGEXP_COUNT(error, ',') + 1;</code>
Salin selepas log masuk

Arahan:

  1. Fungsi REGEXP_SUBSTR mengekstrak bilangan kejadian yang ditentukan bagi corak yang ditentukan daripada rentetan. Nilai_lajur dalam pertanyaan hierarki menentukan kejadian ke-n.
  2. Fungsi REGEXP_REPLACE mengalih keluar aksara bukan pembatas untuk mengira jumlah ralat. (Langkah ini tersirat dalam REGEXP_COUNT dalam pertanyaan yang dioptimumkan)
  3. Fungsi multiset dan TABLE mencipta set nilai yang semakin meningkat untuk pertanyaan hierarki.
  4. Cambung silang dengan jadual temp berulang untuk setiap baris untuk setiap kejadian ralat.

Kesimpulan

Kaedah yang dipertingkatkan ini menyediakan cara yang fleksibel untuk memisahkan rentetan berbilang lajur kepada berbilang baris dalam Oracle 10g dan 11g. Ia menggunakan fungsi terbina dalam Oracle dan teknik lanjutan seperti pertanyaan hierarki untuk mengendalikan tugas manipulasi rentetan yang kompleks dengan cekap.

Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Rentetan Dibatasi Koma kepada Berbilang Baris dalam Oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan