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

Cara Mengekstrak Substring Dari String di Oracle/SQLite

Masalah:

Anda memiliki kolom string, dan Anda ingin mendapatkan substring darinya.

Contoh 1:

Di emails tabel, ada kolom email. Anda ingin menampilkan tujuh karakter pertama dari setiap email.

Tabelnya terlihat seperti ini:

email
[email protected]
[email protected]
[email protected]
[email protected]

Solusi 1:

SELECT
  email,
  SUBSTR(email, 1, 7) AS substring
FROM emails;

Hasilnya adalah:

email substring
[email protected] jake99@
[email protected] tamarab
[email protected] notine@
[email protected] jessica

Diskusi:

Gunakan SUBSTR() fungsi. Argumen pertama adalah string atau nama kolom. Argumen kedua adalah indeks karakter di mana substring harus dimulai. Argumen ketiga adalah panjang substring.

Hati-Hati! Tidak seperti di beberapa bahasa pemrograman lain, indeks dimulai dari 1 , bukan 0. Ini berarti karakter pertama memiliki indeks 1, karakter kedua memiliki indeks 2, dst.

>SUBSTR(email, 1, 7) akan mengembalikan substring dari nilai di kolom email yang dimulai dari karakter pertama hingga tujuh karakter.

Contoh 2:

Anda ingin menampilkan substring antara indeks 2 dan 6 (inklusif).

Solusi 2:

SELECT
  email,
  SUBSTR(email, 2, 5) AS substring
FROM emails;

Hasilnya adalah:

email substring
[email protected] ake99
[email protected] amara
[email protected] otine
[email protected] penting

Diskusi:

Anda menggunakan SUBSTR() berfungsi seperti pada contoh sebelumnya. Kali ini, argumen kedua dari fungsi tersebut adalah 2, karena kita ingin memulai pada indeks 2. Panjang substring adalah 5 (end_index - start_index + 1 ).

Contoh 3:

Anda ingin menampilkan substring yang dimulai pada tanda @ dan berakhir di akhir string, tetapi Anda tidak mengetahui indeks atau panjang pastinya.

Solusi 3:

SELECT
  email,
  SUBSTR(email, INSTR(email, '@'), LENGTH(email) - INSTR(email, '@') + 1) AS substring
FROM emails;

Hasilnya adalah:

email substring
[email protected] @gmail.com
[email protected] @zoho.com
[email protected] @yahoo.fr
[email protected] @onet.pl

Diskusi:

Anda menggunakan SUBSTR() berfungsi seperti pada contoh sebelumnya. Kali ini, Anda sedang mencari karakter tertentu yang posisinya dapat bervariasi dari baris ke baris. Untuk menemukan indeks karakter tertentu, Anda dapat menggunakan INSTR(column, character) fungsi, di mana kolom adalah string literal atau kolom dari mana Anda ingin mengambil substring, dan karakter adalah character di mana Anda ingin memulai substring (di sini, @ ).

Argumen ketiga dari SUBSTR() fungsi adalah panjang substring. Anda dapat menghitungnya menggunakan INSTR() dan LENGTH() fungsi. Caranya dengan mengurangkan indeks dari panjang kolom kemudian menambahkan 1:

LENGTH(email) - INSTR(email, '@') + 1

Anda mungkin juga ingin mengambil substring yang tidak berakhir di akhir string tetapi pada beberapa karakter tertentu, mis., sebelum '.' Berikut cara melakukannya:

SELECT
  email,
  SUBSTR(email, INSTR(email, '@'), INSTR(email, '.') - INSTR(email, '@')) AS substring
FROM emails;

Hasil dari query ini adalah:

email substring
[email protected] @gmail
[email protected] @zoho
[email protected] @yahoo
[email protected] @onet

Bagian INSTR(email, '.') - INSTR(email, '@') cukup hitung panjang substring.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mendapatkan pegangan ke Oracle Connection asli di Hibernate 4 untuk menjalankan proses tersimpan

  2. Bagaimana saya bisa menjalankan skrip SQL asli di JPA/Hibernate?

  3. Bagaimana Mengekspor Hasil Kueri ke Excel di Oracle SQL Developer?

  4. Oracle 12c DIIDENTIFIKASI OLEH NILAI

  5. Bagaimana cara menghasilkan seluruh DDL dari skema Oracle (skrip)?