Rumah > Artikel > pangkalan data > Bagaimana untuk memintas beberapa aksara dalam rentetan dalam oracle
Dalam Oracle, anda boleh menggunakan fungsi Instr() dan substr() untuk memintas sebahagian daripada aksara dalam rentetan Sintaks ialah "SUBSTR('String untuk dipintas', kedudukan permulaan pemintasan, INSTR(. 'Rentetan Dimintas Diperlukan,'','kedudukan permulaan carian','bilangan kejadian')-1) ".
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi Oracle 11g, komputer Dell G3.
oracle memintas sebahagian daripada rentetan dalam medan
Gunakan fungsi Instr() dan substr() dalam Oracle:
Dalam Oracle, anda boleh menggunakan fungsi instr untuk menilai rentetan untuk menentukan sama ada ia mengandungi aksara tertentu.
Sintaksnya ialah:
instr(sourceString,destString,start,appearPosition). instr('源字符串' , '目标字符串' ,'开始位置','第几次出现')
di mana
sourceString mewakili rentetan sumber; destString mewakili subrentetan untuk dicari dalam rentetan sumber; >
appearPosition mewakili bilangan kejadian destString yang anda ingin cari daripada aksara sumber Parameter ini juga adalah pilihan dan lalai ialah 1; nombor negatif, Kemudian carian dilakukan dari kanan ke kiri, tetapi data kedudukan masih dikira dari kiri ke kanan.Mulakan carian dari aksara ke-7
Bermula dari aksara ke-3, aksara ke-3 ialah c, jadi bermula dari 3. Cari bc dalam rentetan seterusnya dan kembalikan 9
SQL> select instr('yuechaotianyuechao','ao') position from dual; POSITION ---------- 6Penggunaan fungsi substr, dapatkan rentetan dengan kedudukan permulaan dan panjang yang ditentukan dalam rentetan Lalai ialah subrentetan dari kedudukan permulaan hingga penghujung.
SQL> select instr('yuechaotianyuechao','ao', 7) position from dual; POSITION ---------- 17Seperti:
SQL> select instr('yuechaotianyuechao','ao', 1, 2) position from dual; POSITION ---------- 17
Fungsi SUBSTR()
SQL> select instr('abcdefgh','de') position from dual; POSITION ---------- 4
1 Penggunaan: Daripada ungkapan aksara yang diberikan atau pengembalian kata a subrentetan dalam medan.
SQL>select instr('abcdefghbc','bc',3) position from dual; POSITION ---------- 92. Format tatabahasa:
Format 1:
substr( string, start_position, [ length ] ) substr('目标字符串',开始位置,长度)1. rentetan Rentetan yang perlu dipintas 2. a memintas rentetan Kedudukan permulaan (Nota: Apabila a sama dengan 0 atau 1, pemintasan bermula dari kedudukan pertama)
substr('This is a test', 6, 2) would return 'is' substr('This is a test', 6) would return 'is a test' substr('TechOnTheNet', -3, 3) would return 'Net' substr('TechOnTheNet', -6, 3) would return 'The'select substr('Thisisatest', -4, 2) value from dual
3. b Panjang rentetan yang akan dipintas Format 2:
1. rentetan Rentetan yang perlu dipintas
2. a boleh difahami sebagai memintas semua rentetan seterusnya bermula daripada aksara a-th.
substr(string string, int a, int b); substr(string string, int a) ;
oracle memintas rentetan
C3411.907w15 memintas rentetan C3411 sebelum titik SUBSTR ('C3411.907w15', 0, INSTR ('C3411.9, '07w11. .', 1, 1) - 1)Potong rentetan 907w15 selepas titik daripada C3411.907w15 SUBSTR ('C3411.907w15', INSTR ('C3411.907w15,', ' 1, 1) 1)
Contoh aplikasi projek:
Rentetan asal:
Ada Adakah 7 "_" dalam medan asal Sekarang saya hanya mahu mengeluarkan rentetan selepas "_" yang terakhir.
SELECT SUBSTR ('C3411.907w15', 0, INSTR ('C3411.907w15, '.', 1, 1) - 1) FROM DUALDua langkah: Langkah pertama ialah mencari aksara "_" ke-7 melalui fungsi Instr():
SELECT SUBSTR ('C3411.907w15', INSTR ('C3411.907w15', '.', 1, 1)+1) FROM DUAL
pilih instr('Q room Net Kumpulan_Bahagian Pembrokeran_Daerah China Selatan_Shenzhen Shihua_Jabatan Jualan_Nanshan Qianhai District_Kawasan Pusat Qianhai_Qianhai Cawangan Kelima','_', 1, 7) fnama paparan dari SHENZHENJM1222.B
Orangpilih instr('Qfang.com Group_Brokerage Division_South China District_Shenzhen Shihua_Jualan Department_Nanshan Qianhai District_Qianhai Central Area_Qianhai Wufen Branch', '_',
-1, 1) fdisplayname FROM SHENZHE.>
Langkah 2, gunakan fungsi substr() untuk mendapatkan medan yang diperlukan: pilih substr(fdisplayname 1 fdisplayname : mewakili nama medan, bersamaan dengan metastring Fokus pada pengenalan 1 1 bermakna mula memintas rentetan pertama selepas rentetan sasaran "_" Mari kita lihat situasi nombor yang berbeza:
pilih substr(fdisplayname , instr(fdisplayname,'_',-1,1) 1) fdisplayname from SHENZHENJM1222.B Mari kita lihat maksud 1 dalam instr(fdisplayname,'_',-1,1):
Tutorial yang disyorkan: "Tutorial Oracle"
Atas ialah kandungan terperinci Bagaimana untuk memintas beberapa aksara dalam rentetan dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!