Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memisahkan Rentetan dalam Oracle SQL pada Kejadian Terjauh Pembatas?
Memisahkan Rentetan mengikut Kedudukan Pembatas Menggunakan Oracle SQL
Sama seperti siaran lain, keperluannya adalah untuk memisahkan rentetan dengan kejadian terjauh sesuatu pembatas. Perbezaan utama di sini ialah pembatas bukan selalunya yang pertama, tetapi yang paling jauh.
Untuk mencapai ini, fungsi SUBSTR dan INSTR boleh digunakan. Instr(str, '/', -1, 1) mencari kedudukan pembatas paling jauh, manakala -1 menunjukkan untuk mula mencari dari hujung rentetan ke arah permulaan.
Walau bagaimanapun, ralat berlaku dalam contoh yang disediakan kerana ketiadaan start_position dalam fungsi INSTR. Dengan menambah start_position = -1, fungsi INSTR berjaya mencari pembatas paling jauh dan membelah rentetan dengan sewajarnya.
Berikut ialah kod yang diubah suai:
WITH DATA AS ( SELECT 'F/P/O' str FROM dual ) SELECT SUBSTR(str, 1, Instr(str, '/', -1, 1) -1) part1, SUBSTR(str, Instr(str, '/', -1, 1) +1) part2 FROM DATA
Pindaan ini memastikan kod terbahagi dengan tepat rentetan pada kedudukan pembatas yang dikehendaki, menghasilkan output "F/P" dan "O" yang betul untuk rentetan yang diberikan "F/P/O".
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memisahkan Rentetan dalam Oracle SQL pada Kejadian Terjauh Pembatas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!