Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memisahkan Rentetan dalam Oracle SQL Berdasarkan Kedudukan Pembatas Terjauh?

Bagaimanakah Saya Boleh Memisahkan Rentetan dalam Oracle SQL Berdasarkan Kedudukan Pembatas Terjauh?

Linda Hamilton
Linda Hamiltonasal
2025-01-06 00:50:40774semak imbas

How Can I Split a String in Oracle SQL Based on the Furthest Delimiter's Position?

Memisahkan Rentetan mengikut Kedudukan Pembatas dalam Oracle SQL

Fungsi INSTR dalam Oracle SQL memberi anda kuasa untuk memisahkan rentetan berdasarkan kedudukan pembatas tertentu. Ini amat berguna apabila anda perlu mengekstrak bahagian tertentu rentetan. Sebagai contoh, pertimbangkan rentetan "F/P/O." Jika anda bertujuan untuk memisahkan rentetan ini pada pembatas paling jauh, hasil yang dijangkakan ialah "F/P" dan "O."

Untuk mencapai ini menggunakan Oracle SQL, anda boleh memanfaatkan pernyataan berikut:

SELECT
  SUBSTR(str, 1, INSTR(str, '/', -1, 1) - 1) AS part1,
  SUBSTR(str, INSTR(str, '/', -1, 1) + 1) AS part2
FROM data

Pernyataan ini menggunakan kedudukan_mula negatif dalam INSTR untuk mengira kembali dari penghujung rentetan, mencari pembatas paling jauh. Fungsi SUBSTR kemudiannya digunakan untuk mengekstrak subrentetan sebelum dan selepas pembatas.

Mengatasi Keputusan Yang Tidak Dijangka

Dalam pertanyaan awal anda, hasil yang tidak dijangka mungkin berlaku kerana anda berpotensi meninggalkan kedudukan_mula dalam panggilan INSTR. Melaraskan kedudukan_mula kepada nilai negatif akan memastikan bahawa fungsi mencari dari hujung rentetan untuk pembatas paling jauh.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memisahkan Rentetan dalam Oracle SQL Berdasarkan Kedudukan Pembatas Terjauh?. 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