Rumah >pangkalan data >tutorial mysql >Bagaimana untuk mengekstrak subrentetan sebelum garis bawah dalam Oracle SQL?
Mengenal pasti kedudukan aksara dalam rentetan boleh menjadi cabaran biasa dalam manipulasi data. Untuk menangani perkara ini, soalan itu meneroka senario di mana subrentetan sehingga aksara tertentu, dalam kes ini garis bawah ('_'), perlu diekstrak daripada lajur jadual.
Pendekatan awal menggunakan fungsi SUBSTRING terbukti tidak mencukupi kerana pergantungannya pada pemilihan berasaskan kedudukan. Memandangkan kedudukan garis bawah berbeza-beza dalam contoh yang diberikan, kaedah ini gagal untuk mendapatkan semula subrentetan yang diingini secara konsisten.
Pertimbangan fungsi RTRIM, bertujuan untuk alih keluar set aksara tertentu dari sebelah kanan, pada mulanya nampak menjanjikan. Walau bagaimanapun, ia gagal dalam mengasingkan aksara yang membawa kepada garis bawah melainkan fungsi RTRIM digunakan bersama dengan kaedah lain.
Penyelesaian terletak dalam menggabungkan fungsi SUBSTR dengan INSTR, yang mengenal pasti kedudukan watak, dan NVL, yang mengendalikan nilai nol. Kod berikut menunjukkan pendekatan ini:
SELECT NVL(SUBSTR('ABC_blah', 0, INSTR('ABC_blah', '_')-1), 'ABC_blah') AS output FROM DUAL
Atas ialah kandungan terperinci Bagaimana untuk mengekstrak subrentetan sebelum garis bawah dalam Oracle SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!