Memilih Nilai ke-n daripada Senarai dengan REGEX dan Pengendalian Null
Mengekstrak elemen ke-n daripada senarai yang dipisahkan koma boleh dicapai menggunakan REGEXP_SUBSTR (), tetapi ia boleh gagal apabila menemui nilai nol. Untuk menangani isu ini, pertimbangkan penyelesaian berikut:
Reex yang digunakan ialah (.*?)(,|$), yang menangkap segala-galanya sebelum kejadian ke-n koma atau penghujung baris. .*? corak tidak tamak sepadan dengan bilangan minimum aksara yang diperlukan untuk mencapai koma. Subkumpulan ke-n mewakili nilai yang sedang dicari.
SELECT REGEXP_SUBSTR('1,,3,4,5', '(.*?)(,|$)', 1, 2, NULL, 1) AS data FROM dual; -- Output: NULL
Pendekatan ini memastikan bahawa nilai nol dikembalikan sebagai nol, tanpa mengira kedudukannya dalam senarai.
Untuk meningkatkan kebolehgunaan semula, pertimbangkan untuk merangkumkan logik regex dalam fungsi:
FUNCTION GET_LIST_ELEMENT(string_in VARCHAR2, element_in NUMBER, delimiter_in VARCHAR2 DEFAULT ',') RETURN VARCHAR2 AS BEGIN RETURN REGEXP_SUBSTR(string_in, '(.*?)(\'||delimiter_in||'|$)', 1, element_in, NULL, 1); END GET_LIST_ELEMENT;
Menggunakan fungsi ini memudahkan pengekstrakan proses:
SELECT GET_LIST_ELEMENT('123,222,,432,555', 4) AS value FROM dual; -- Output: 432
Pendekatan ini mengendalikan nilai nol dengan berkesan dan menyediakan penyelesaian serba boleh untuk mengekstrak data daripada senarai yang dipisahkan koma.
Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Elemen ke-n dengan Selamat daripada Senarai Dipisahkan Koma Menggunakan REGEXP_SUBSTR dan Mengendalikan Nulls?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!