Penggunaan Function substring() di Query SQL
July 21st, 2008 | by rosihanari |
Cetak Artikel
Pada artikel ini, akan dibahas bagaimana mengambil substring dalam suatu string dari data menggunakan statement SQL. Untuk mempermudah pembahasan, kita akan mengambil studi kasus, lagi-lagi tentang data mahasiswa.
Misalkan Anda diberikan data mahasiswa dalam tabel berikut ini.
NIMÂ Â Â Â Â Â Â NAMA MAHASISWA M0197001Â Â Dwi Amalia Fitriani M0197002Â Â Faza Fauzan Khosiyarrohman M0198002Â Â Nada Hasanah M0199003Â Â Rosihan Ari Yuana M0199005Â Â Ismail Hasan M0199006Â Â Yusron Rizqi M0297003 Yohana Dwi Ariyanto M0298004 Subari M0298005 Rusmini
Kemudian Anda ingin menjawab pertanyaan berikut ini:
- Siapa saja mahasiswa yang berangkatan 97?
- Berapa jumlah mahasiswa yang merupakan angkatan 99?
- Tampilkan jumlah mahasiswa untuk setiap angkatan.
- Tampilkan jumlah mahasiswa dari jurusan yang berkode M01 (dengan asumsi bahwa M0X menunjukkan kode Jurusan)
- Tampilkan jumlah mahasiswa untuk setiap jurusan (M01 dan M02)
Kalau Anda perhatikan data di atas, tidak tercantum field ANGKATAN. Haruskah field tersebut ada? Ternyata tidak harus. Untuk mendapatkan angkatan mahasiswa, Anda cukup mengambil informasi dari NIM mahasiswanya. Bagaimana caranya?
Tahun angkatan mahasiswa dapat dilihat pada bagian NIM, yaitu mulai pada karakter ke 4 s/d 5, sebagai contoh NIM M0197001 memiliki tahun angkatan 97. Dengan menggunakan function substring() pada SQL, Anda dapat memperoleh tahun angkatan mahasiswa tersebut.
Sekarang kita akan menjawab soal No 1.
Statement SQL untuk menjawab soal ini adalah:
SELECT * FROM mhs WHERE substring(NIM, 4, 2) = '97';
Maksud dari perintah substring(NIM, 4, 2) pada query di atas adalah mencari karakter 4 dan 5 dari field NIM yang sama dengan ’97′. Maksud parameter 2 pada function tersebut menunjukkan jumlah karakter yang akan dicek (mulai dari karakter ke 4).
Selanjutnya akan kita bahas soal No. 2
Statement untuk query ini adalah:
SELECT count(*) FROM mhs WHERE substring(NIM, 4, 2) = '99';
Saya kira penjelasan dari query ini hampir sama dengan No. 1
Untuk No. 3, statement SQL nya adalah:
SELECT substring(NIM, 4, 2) as Angkatan, Count(*) FROM mhs GROUP BY Angkatan;
Pada soal No. 1 dan 2, function substring() terletak di bagian WHERE, sedangkan pada soal No. 3 ini, substring() terletak di klausa SELECT. Hal ini tidak ada masalah. Karena kita akan menampilkan tahun angkatan, maka berikan substring(NIM, 4, 2) di bagian SELECT. Selanjutnya tahun angkatan ini kita buat alias untuk melakukan grouping ketika melakukan perhitungan jumlah mahasiswa setiap angkatan.
Sedangkan untuk soal No. 4, statement SQL nya adalah:
SELECT count(*) FROM mhs WHERE substring(NIM, 1, 3) = 'M01';
Mengapa menggunakan substring(NIM, 1, 3)? Ya… karena untuk kode jurusan ini memiliki 3 karakter yang diawali mulai dari karakter pertama dari NIM.
Untuk soal terakhir, statement SQL yang Anda buat adalah:
SELECT substring(NIM, 1, 3) as Jurusan, count(*) as Jumlah FROM mhs GROUP BY Jurusan
Pembahasan soal No. 5 ini identik dengan No. 3
| Baca Juga Artikel Terkait |
Kata kunci:




[...] artikel yang lain tentang substring di SQL telah dibahas sebelumnya. Selanjutnya apakah dapat substring dari suatu string tersebut direlasikan [...]
[...] Function ini digunakan untuk mengambil substring dari suatu string. Contoh penggunaannya dapat Anda baca di Penggunaan Function Substring() di MySQL. [...]
Bisa ga dipakai untuk mengambil data di tanggal, misalnya 22/11/2008…jadi kita hanya menampilkan 2008 aja
MMm… sebaiknya kalo tipe data date, pake function saja. Contoh:
SELECT YEAR(’2008-10-01′)
Perintah di atas akan menghasilkan ’2008′.
Bisa pula memakai script PHP
$pecahTanggal = explode(‘/’, ’20/10/2008′);
$tahun = $pecahTanggal[2];
echo $tahun;
wahhhh siiip lah bos
mudah2 an sukses
jangan lupa ama mas mu ini
Numpang nanya donk,
Kalo sintaks substring kalo saya mau nampilin string sebelah kanan yg angka 1 dari data di bawah, gimana caranya? mohon bantuannya.
32451
23145
24314
41442
saya mau hasilnya jadi seperti ini:
3245
23
243
4
bisa gak?
thx ya ….
trims yawh atas infonya…
w copy nih infonya…
wassalam…
Mas, untuk tutorial chapta dgn PHP sdh ada / sdh pernah di tulis blm dlm blog ini…?
Blh donk mas, upload mengenai chapta…
@erik setiawan: ada kok mas, tapi saya pake JpGraph untuk mengenerate kode chaptcha nya. coba dicari di blog ini ya..
pak..
saya pake query
SELECT * FROM pasien WHERE substr(tanggal_perawatan,0,7)=’2013-01′ ORDER BY id
lalu muncul komentar:MySQL returned an empty result set (i.e. zero rows). ( Query took 0.0018 sec )
itu kenapa ya pak
@ega: berarti memang gak ada hasil query nya.
[...] Anda diberikan data mahasiswa dalam tabel berikut ini. view sourceprint? 01.NIMÂ Â Â Â Â Â Â NAMA MAHASISWA 02.M0197001Â Â Dwi Amalia Fitriani [...]