Penjelasan sederhana
SUBSTRING mengambil sebagian teks. Kamu menentukan mulai dari karakter ke berapa, dan berapa karakter yang diambil. Sama dengan rumus MID di Excel.
Posisi dihitung mulai dari 1, bukan 0. Jadi SUBSTRING('Jakarta', 1, 4) menghasilkan "Jaka".
Sintaks
SUBSTRING(teks, posisi_awal, panjang)
| Bagian | Keterangan |
|---|---|
posisi_awal | Mulai dari karakter ke berapa. Karakter pertama = 1. |
panjang | Banyaknya karakter yang diambil. |
Tanda [kurung siku] berarti bagian opsional. Kata kunci SQL tidak membedakan huruf besar-kecil, tapi menulisnya dengan huruf besar membuat query lebih mudah dibaca.
Contoh SUBSTRING
Data contoh: karyawan
Tabel karyawan
| id | nama | dept_id | kota | gaji | tgl_masuk | atasan_id |
|---|---|---|---|---|---|---|
| 1 | Andi Pratama | 3 | Bandung | 12500000 | 2019-03-11 | NULL |
| 2 | Bunga Lestari | 1 | Jakarta | 9800000 | 2020-07-01 | NULL |
| 3 | Candra Wijaya | 3 | Bandung | 8200000 | 2021-02-15 | 1 |
| 4 | Dewi Anggraini | 2 | Jakarta | 7500000 | 2022-05-09 | 6 |
| 5 | Eko Saputra | 1 | Jakarta | 6900000 | 2023-01-16 | 2 |
| 6 | Fajar Nugroho | 2 | Surabaya | 11000000 | 2018-09-03 | NULL |
| 7 | Gita Permata | 3 | Jakarta | 8200000 | 2023-08-21 | 1 |
| 8 | Hendra Gunawan | NULL | Medan | 5500000 | 2024-04-02 | NULL |
SELECT tgl_masuk,
SUBSTRING(tgl_masuk, 1, 4) AS tahun
FROM karyawan
LIMIT 3;
Hasil 3 baris
| tgl_masuk | tahun |
|---|---|
| 2019-03-11 | 2019 |
| 2020-07-01 | 2020 |
| 2021-02-15 | 2021 |
Mengambil 4 karakter pertama dari teks tanggal, yaitu tahunnya.
Cara kerjanya, langkah demi langkah
FROM karyawan: data tanggal masuk diambil, misalnya "2019-03-11".SUBSTRING(tgl_masuk, 1, 4): mulai dari karakter pertama, diambil 4 karakter.- Hasilnya "2019", yaitu tahunnya saja.
LIMIT 3menampilkan 3 baris pertama.
Dipakai untuk apa di kantor?
- Mengambil kode cabang dari 3 huruf pertama nomor transaksi.
- Mengambil tahun atau bulan dari tanggal yang disimpan sebagai teks.
- Menyamarkan data, misalnya hanya menampilkan 4 digit terakhir nomor HP.
Kesalahan yang sering terjadi
- Mengira posisi dimulai dari 0 seperti di beberapa bahasa pemrograman. Di SQL dimulai dari 1.
- Memakai
SUBSTRINGuntuk kolom bertipe tanggal asli (DATE). Lebih tepat pakaiEXTRACT.
Progres bab Fungsi Teks, Angka & Tanggal
0/9 dipelajari
Lanjut: TRIM