Dalam SQLite, substring()
adalah alias untuk substr()
.
Ini mengembalikan substring dari string, berdasarkan lokasi awal yang diberikan dalam string. Diperlukan dua argumen, dan argumen opsional ketiga diterima.
substring()
penamaan diperkenalkan di SQLite 3.34.0, yang dirilis pada 1 Desember 2020. Alasan mengapa substring()
sintaks diperkenalkan adalah untuk kompatibilitas dengan SQL Server.
Sintaks
Jadi Anda sekarang dapat memanggil fungsi dengan salah satu cara berikut:
substr(X,Y,Z)
substr(X,Y)
substring(X,Y,Z)
substring(X,Y)
X
adalah string lengkap yang berisi substring yang ingin Anda kembalikan.Y
adalah lokasi karakter pertama dari substring yang ingin Anda kembalikan dari string tersebut.Z
adalah jumlah karakter yang ingin Anda kembalikan. Jika dihilangkan, semua karakter berikutnya dikembalikan (mulai dariY
).
Jika X
adalah string maka indeks karakter merujuk ke karakter UTF-8 yang sebenarnya. Jika X
adalah BLOB maka indeks mengacu pada byte.
Seperti disebutkan, substring()
sintaks hanya tersedia dari SQLite 3.34.0.
Contoh dengan 3 Argumen
Berikut adalah contoh dasar untuk mendemonstrasikan cara menggunakan substring()
dengan tiga argumen.
SELECT substring('Dolemite', 3, 4);
Hasil:
lemi
Contoh dengan 2 Argumen
Jika saya menghilangkan argumen ketiga dari contoh sebelumnya, saya mendapatkan hasil berikut.
SELECT substring('Dolemite', 3);
Hasil:
lemite
Titik Awal Negatif
Anda dapat memberikan nilai negatif untuk argumen kedua. Saat Anda melakukan ini, karakter pertama dari substring ditemukan dengan menghitung dari kanan, bukan dari kiri.
SELECT substring('Dolemite', -3);
Hasil:
ite
Ini contoh lain, kali ini saya tentukan panjang substring.
SELECT substring('Dolemite', -7, 4);
Hasil:
olem
Jadi nilai negatif memiliki efek yang sama seperti saat menggunakan substring()
fungsi di MySQL. MySQL juga memiliki substr()
fungsi, yang merupakan sinonim dari substring()
fungsi.
Namun, ini berbeda dengan cara SQL Server memperlakukan nilai negatif. Saat Anda memberikan nilai negatif ke substring()
di SQL Server, itu hanya akan mulai menghitung pada titik imajiner sebelum string dimulai.
Panjang Substring Negatif
Contoh sebelumnya menggunakan titik awal negatif. Dalam contoh ini, saya akan menggunakan panjang negatif. Maksud saya, saya akan memberikan nilai negatif untuk argumen ketiga.
SELECT substring('Dolemite', -1, -4);
Hasil:
emit
Jadi memberikan nilai negatif untuk argumen ketiga menghasilkan karakter sebelum titik awal dikembalikan.
Ini juga berlaku jika argumen kedua bernilai positif.
SELECT substring('Dolemite', 6, -4);
Hasil:
olem
Contoh Basis Data
Berikut adalah contoh yang menggunakan substring()
dalam kueri basis data terhadap basis data sampel Chinook.
SELECT
substring(Name, 1, 10),
Name
FROM Artist
ORDER BY Name DESC
LIMIT 10;
Hasil:
substring(Name, 1, 10) Name ---------------------- --------------------------------- Zeca Pagod Zeca Pagodinho Youssou N' Youssou N'Dour Yo-Yo Ma Yo-Yo Ma Yehudi Men Yehudi Menuhin Xis Xis Wilhelm Ke Wilhelm Kempff Whitesnake Whitesnake Vinícius E Vinícius E Qurteto Em Cy Vinícius E Vinícius E Odette Lara Vinícius D Vinícius De Moraes & Baden Powell
Dalam hal ini, saya mengembalikan sepuluh karakter pertama dari Name
kolom. Saya juga mengembalikan isi lengkap Name
kolom untuk membandingkan hasilnya.