Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memisahkan Rentetan dalam Oracle SQL Berdasarkan Kedudukan Pembatas Terjauh?
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!