Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Untuk mengekstrak string tertentu dari string yang diberikan di Oracle

select 
  SUBSTR(s, 1, INSTR(s, '-') - 1) as a, 
  SUBSTR(s, INSTR(s, '-', -1) + 1) as b 
from 
  (select '[email protected]@BR12340000-990' as s from dual)

Menggunakan SUBSTR(string, start, length) kami memiliki argumen berikut:

Untuk A:

  • string yang akan dicari
  • 1 sebagai start dan
  • (index_of_the_first_hyphen - 1) sebagai length . INSTR(string, searchfor) memberi kita indeks tanda hubung pertama

Untuk B:

Menggunakan SUBSTR(string, start) kami memiliki argumen:

  • string yang akan dicari
  • the (index_of_last_hyphen + 1) - kali ini kita menggunakan INSTR(string, searchfor, startindex) tambahan argumen startindex dan atur ke -1; ini membuatnya mencari dari akhir string dan bekerja mundur, memberi kita indeks tanda hubung terakhir

Kami tidak memerlukan argumen panjang - SUBSTR tanpa panjang mengembalikan sisa string ke akhir

Penting untuk dicatat bahwa INSTR dengan indeks awal -1 melakukan pencarian mundur tetapi selalu mengembalikan indeks dari awal string, bukan akhir.

INSTR('dddde', 'd', -1)  
       12345            -- returns 4, because d is 4 from the start
       54321            -- it does not return 2, even though d is 2 from the "start" when searching backwards


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Temukan data yang hilang yang diteruskan ke SQL dalam klausa

  2. Cara menggunakan Oracle Associative Array dalam kueri SQL

  3. Buat Java di database Oracle dengan JDBC

  4. Fungsi Oracle REPLACE() tidak menangani carriage-returns &line-feeds

  5. Mengubah Hari Tahun Ini menjadi tanggal ketika beberapa format tanggal memiliki DDYYYY dan beberapa memiliki DDDYYYY di Oracle