Fungsi Substring() di SQL Server: Cara Menggunakannya Beserta Contoh
โก Ringkasan Cerdas
Fungsi SUBSTRING() di SQL Server, misalnya.tracts merupakan bagian dari karakter, teks, atau ekspresi biner, yang mengembalikan sejumlah karakter dari posisi awal yang dipilih, dan berpasangan secara alami dengan CHARINDEX untuk penguraian berdasarkan pembatas.

Apa itu Substring()?
SUBSTRING() adalah sebuah fungsi dalam SQL yang memungkinkan pengguna untuk mengambil substring dari string apa pun sesuai kebutuhan. SUBSTRING() contohtracFungsi SUBSTRING() mengembalikan string dengan panjang tertentu, dimulai dari lokasi tertentu dalam string input. Tujuan dari SUBSTRING() dalam SQL adalah untuk mengembalikan bagian tertentu dari string.
Sintaks untuk Substring()
SUBSTRING(Expression, Starting Position, Total Length)
Sini:
- Ekspresi SUBSTRING() di SQL Server Dapat berupa karakter apa pun, biner, teks, atau gambar. Ekspresi adalah string sumber dari mana substring diambil.
- Posisi Awal menentukan posisi dalam Ekspresi tempat substring baru harus dimulai.
- Panjang Total adalah panjang total yang diharapkan dari substring hasil Ekspresi, dimulai dari Posisi Awal.
Aturan penggunaan SUBSTRING()
- Ketiga argumen tersebut wajib ada dalam fungsi SUBSTRING() MS SQL.
- Jika Posisi Awal lebih besar dari jumlah karakter maksimum dalam Ekspresi, maka fungsi SUBSTRING() di SQL Server tidak akan mengembalikan apa pun.
- Panjang Total dapat melebihi panjang karakter maksimum dari string asli. Dalam hal ini, substring yang dihasilkan adalah seluruh string, dimulai dari Posisi Awal dalam Ekspresi hingga karakter terakhir dari Ekspresi.
Diagram di bawah ini mengilustrasikan penggunaan fungsi SUBSTRING() di SQL Server:
Contoh Substring T-SQL
Asumsi: Anggaplah kita memiliki tabel bernama 'Guru99' dengan dua kolom dan empat baris, seperti yang ditampilkan di bawah ini. Kita akan menggunakan ini 'GuruTabel 99' pada contoh berikut:
Pertanyaan 1: SUBSTRING() dalam SQL dengan panjang kurang dari panjang maksimum total ekspresi.
SELECT Tutorial_name, SUBSTRING(Tutorial_name,1,2) As SUB from Guru99;
Hasil: Diagram di bawah ini menampilkan substring dari kolom 'Tutorial_name' sebagai kolom 'SUB'. Posisi awal adalah 1 dan panjangnya adalah 2, sehingga dua karakter pertama dikembalikan:
Pertanyaan 2: Fungsi SUBSTRING() di SQL Server dengan panjang yang lebih besar dari panjang maksimum total ekspresi.
SELECT Tutorial_name, SUBSTRING(Tutorial_name,2,8) As SUB from Guru99;
Hasil: Diagram di bawah ini menampilkan substring dari kolom 'Tutorial_name' sebagai kolom 'SUB'. Meskipun panjang substring lebih besar dari panjang maksimum total ekspresi, tidak ada kesalahan yang muncul dan kueri mengembalikan string lengkap dari posisi awal dan seterusnya:
SUBSTRING dengan CHARINDEX di SQL Server
Salah satu penggunaan umum fungsi SUBSTRING() di dunia nyata adalah untuk mengekstraktracFungsi SUBSTRING() mengambil teks yang terletak sebelum atau sesudah pembatas, seperti domain dalam alamat email. Secara sendiri, SUBSTRING() membutuhkan posisi awal yang tetap, tetapi posisi pembatas bervariasi dari baris ke baris. Fungsi CHARINDEX() mengatasi hal ini dengan mengembalikan posisi karakter di dalam string:
CHARINDEX(substring_to_find, expression [, start_location])
Dengan menyisipkan CHARINDEX() di dalam SUBSTRING(), posisi awal menjadi dinamis. Contoh di bawah ini menemukan @ simbol dan mengembalikan semua yang ada setelahnya. A variabel menyimpan nilai sampel:
DECLARE @Email VARCHAR(50) = 'john.doe@guru99.com'; SELECT SUBSTRING(@Email, CHARINDEX('@', @Email) + 1, LEN(@Email)) AS Domain;
Di sini, CHARINDEX('@', @Email) menemukan posisi simbol @, menambahkan 1 untuk melewatinya, dan SUBSTRING() kemudian mengekstraktracts karakter yang tersisa. Untuk nilai di atas, kueri mengembalikan domain. guru99.comPola CHARINDEX-plus-SUBSTRING ini adalah cara standar untuk mengurai string terstruktur di T-SQL.
SUBSTRING vs LEFT dan RIGHT di SQL Server
SQL Server juga menyediakan fungsi LEFT() dan RIGHT() untuk mengambil karakter dari awal atau akhir string. Fungsi-fungsi ini lebih singkat untuk ditulis, tetapi terbatas pada kedua ujungnya. SUBSTRING() adalah yang paling fleksibel karena dapat dimulai dari posisi mana pun. Tabel di bawah ini membandingkan ketiganya:
| fungsi | kasus | Extracts dari | SUBSTRING() yang setara |
| LEFT(ekspresi, n) | 2 | Mulai dari string | SUBSTRING(ekspresi, 1, n) |
| KANAN(ekspresi, n) | 2 | Ujung tali | SUBSTRING(ekspresi, LEN(ekspresi) โ n + 1, n) |
| SUBSTRING(ekspresi, awal, panjang) | 3 | Posisi apapun | Tidak berlaku |
Singkatnya, LEFT() dan RIGHT() adalah pintasan praktis untuk ujung-ujung string, sedangkan SUBSTRING() menangani kasus umum, termasuk karakter yang diambil dari tengah.
Argumen Negatif, Nol, dan NULL dalam SUBSTRING
Di luar aturan dasar, ada baiknya mengetahui bagaimana fungsi SUBSTRING() berperilaku di bagian tepinya. Ketika posisi awal adalah nol atau negatif, SQL Server menghitung panjang efektif (awal + panjang โ 1) dan mulai membaca dari posisi pertama. Ketika argumen apa pun adalah NULL, hasilnya adalah NULL. Tabel di bawah ini, telah diverifikasi terhadap data resmi. SUBSTRING (Transact-SQL) Referensi tersebut menunjukkan kasus-kasus berikut:
| Memanggil | Hasil | Alasan |
| SUBSTRING('Guru99', 1, 4) | Guru | Panggilan normal: empat karakter dari posisi pertama. |
| SUBSTRING('Guru99', 0, 3) | Gu | Mulai dari bawah satu: panjang efektifnya adalah 0 + 3 โ 1 = 2. |
| SUBSTRING('Guru99', 4, 100) | u99 | Panjang yang melebihi batas string akan mengembalikan sisanya, tanpa kesalahan. |
| SUBSTRING('Guru99', 3, NULL) | NULL | Argumen NULL membuat seluruh hasil menjadi NULL. |
Mengetahui kasus-kasus khusus ini mencegah kejutan ketika posisi awal dihitung dari kolom lain atau variabel Nilai tersebut bisa nol atau NULL.




