Rumah >pangkalan data >tutorial mysql >Bagaimana untuk mengekstrak substrings sebelum garis bawah dalam Oracle SQL?
Masalah:
Memilih subrentetan daripada lajur yang mengandungi hasil dengan urutan aksara yang berbeza-beza sebelum aksara garis bawah ("_"), sambil tidak termasuk garis bawah sendiri.
Penyelesaian:
Untuk mencapai hasil yang diinginkan, gabungan fungsi SQL menyediakan penyelesaian:
SELECT NVL(SUBSTR(column, 0, INSTR(column, '_')-1), column) AS output FROM YOUR_TABLE;
Penjelasan :
Contoh:
Diberikan:
ORG | VALUE 1 | ABC_blahblahblah 2 | DEFGH_moreblahblahblah 3 | IJKLMNOP_moremoremoremore
Pertanyaan:
SELECT NVL(SUBSTR(VALUE, 0, INSTR(VALUE, '_')-1), VALUE) AS output FROM ORG;
Keputusan:
OUTPUT ABC DEFGH IJKLMNOP
Nota:
Untuk Versi Oracle10g, fungsi REGEXP_SUBSTR boleh digunakan sebagai alternatif kepada SUBSTR:
SELECT REGEXP_SUBSTR(column, '^.*(?=_)') AS output FROM YOUR_TABLE;
Atas ialah kandungan terperinci Bagaimana untuk mengekstrak substrings sebelum garis bawah dalam Oracle SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!