Di SQL Server, Anda dapat menggunakan T-SQL STUFF()
berfungsi untuk memasukkan string ke string lain. Ini memungkinkan Anda melakukan hal-hal seperti menyisipkan kata pada posisi tertentu. Ini juga memungkinkan Anda untuk mengganti kata pada posisi tertentu.
Berikut sintaks resminya:
STUFF ( character_expression , start , length , replaceWith_expression )
character_expression
adalah string asli. Ini sebenarnya bisa berupa konstanta, variabel, atau kolom dari karakter atau data biner.start
menentukan posisi awal (yaitu di mana string baru akan dimasukkan).length
adalah berapa banyak karakter yang harus dihapus dari string asli.replaceWith_expression
adalah string yang sedang dimasukkan.replaceWith_expression
dapat berupa konstanta, variabel, atau kolom dari karakter atau data biner.
Ganti Kata
Berikut adalah contoh di mana saya mengganti kata dalam string.
SELECT STUFF('Cats and dogs', 6, 3, 'like');
Hasil:
Cats like dogs
Dalam hal ini, saya menetapkan bahwa kata like
harus dimasukkan pada posisi 6, dan 3 karakter tersebut harus dihapus dari string asli (ini menghapus kata and
). Jadi kata and
dihapus dan kata like
dimasukkan.
Menyisipkan Kata
Berikut ini contoh menyisipkan kata tanpa menghapus apa pun dari string aslinya:
SELECT STUFF('Cats and dogs', 10, 0, 'big ');
Hasil:
Cats and big dogs
Tidak ada yang dihapus dari string asli karena saya menentukan 0
sebagai argumen ketiga.
Nilai Di Luar Rentang
Jika posisi awal berada di luar panjang string asli, nilai NULL akan dikembalikan.
Contoh:
SELECT STUFF('Cats and dogs', 20, 4, 'rabbits');
Hasil:
NULL
Dalam hal ini, string asli tidak sepanjang 20 karakter, jadi hasilnya adalah NULL
.
Hal yang sama terjadi jika Anda memberikan 0
atau angka negatif:
SELECT STUFF('Cats and dogs', -1, 4, 'rabbits');
Hasil:
NULL
Hasil dari contoh-contoh ini berbeda dengan INSERT()
MySQL fungsi, yang akan mengembalikan string asli dalam skenario ini. INSERT()
MySQL pada dasarnya melakukan hal yang sama dengan STUFF()
T-SQL (kecuali untuk kasus seperti ini).
Memasukkan Nilai NULL
Jika Anda memasukkan nilai NULL, hasil Anda hanya akan menghapus jumlah karakter yang disebutkan dari posisi yang disebutkan. Dengan kata lain, tidak ada yang dimasukkan, tetapi karakter tetap dihapus seperti yang ditentukan.
Contoh:
SELECT STUFF('Cats and dogs', 6, 3, NULL);
Hasil:
Cats dogs
Ini adalah area lain di mana MySQL berbeda dengan T-SQL. Melakukan contoh ini dengan MySQL INSERT()
fungsi akan mengembalikan hasil NULL
.