Penggunaan Function substring() di Query SQL

Sharing is caring!

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:

  1. Siapa saja mahasiswa yang berangkatan 97?
  2. Berapa jumlah mahasiswa yang merupakan angkatan 99?
  3. Tampilkan jumlah mahasiswa untuk setiap angkatan.
  4. Tampilkan jumlah mahasiswa dari jurusan yang berkode M01 (dengan asumsi bahwa M0X menunjukkan kode Jurusan)
  5. 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

Tinggalkan Komentar