Pemilihan Substring dalam Oracle SQL Sehingga Aksara Tertentu
Dalam banyak aplikasi pangkalan data, selalunya perlu memilih hanya sebahagian daripada lajur rentetan berdasarkan pembatas tertentu. Dalam Oracle SQL, mengekstrak subrentetan sehingga aksara tertentu boleh menjadi mencabar kerana sifat berasaskan kedudukan bagi fungsi SUBSTRING. Artikel ini menangani isu ini dengan mengemukakan penyelesaian komprehensif yang menangkap subrentetan dengan tepat berdasarkan pembatas yang ditetapkan.
PENYELESAIAN
Untuk mengasingkan subrentetan sehingga aksara tertentu, gabungan daripada tiga fungsi boleh digunakan: SUBSTR, INSTR, dan NVL. SUBSTR membenarkan pengekstrakan sebahagian daripada rentetan berdasarkan kedudukan permulaan dan penamat. INSTR, sebaliknya, mengenal pasti lokasi subrentetan atau aksara tertentu dalam rentetan tertentu. NVL berfungsi sebagai mekanisme sandaran, mengembalikan rentetan asal jika aksara yang ditentukan tidak ditemui.
Sebagai contoh, pertimbangkan lajur jadual berikut dengan nilai:
ABC_blahblahblah DEFGH_moreblahblahblah IJKLMNOP_moremoremoremore
Untuk mendapatkan semula subrentetan sahaja sehingga aksara garis bawah, pertanyaan berikut boleh digunakan:
SELECT NVL(SUBSTR(column, 0, INSTR(column, '_')-1), column) AS output FROM table_name;
Dalam pertanyaan ini, fungsi NVL memastikan bahawa walaupun rentetan tanpa aksara garis bawah dikembalikan, walaupun dengan asalnya nilai.
RUJUKAN
TAMBAH
Dalam Oracle10g dan versi yang lebih baru, fungsi REGEXP_SUBSTR boleh digunakan untuk pengekstrakan subrentetan yang lebih fleksibel menggunakan ungkapan biasa.
Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Substrings dalam Oracle SQL Sehingga Watak Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!