REPLACE (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse di Microsoft Fabric

Mengganti semua kemunculan nilai untai (karakter) yang ditentukan dengan nilai untai (karakter) yang lain.

Konvensi sintaks transact-SQL

Sintaksis

REPLACE ( string_expression , string_pattern , string_replacement )  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

string_expression
Adalah ekspresi string yang akan dicari. string_expression bisa berjenis data karakter atau biner.

string_pattern
Apakah substring yang akan ditemukan. string_pattern bisa berjenis data karakter atau biner. string_pattern tidak boleh melebihi jumlah maksimum byte yang pas di halaman. Jika string_pattern adalah string kosong (''), string_expression dikembalikan tidak berubah.

string_replacement
Adalah string pengganti. string_replacement bisa berjenis data karakter atau biner.

Jenis Kembalian

Mengembalikan nvarchar jika salah satu argumen input adalah dari jenis data nvarchar; jika tidak, REPLACE mengembalikan varchar.

Mengembalikan NULL jika salah satu argumen adalah NULL.

Jika string_expression bukan tipe varchar(maks) atau nvarchar(maks), REPLACE memotong nilai yang dikembalikan pada 8.000 byte. Untuk mengembalikan nilai yang lebih besar dari 8.000 byte, string_expression harus secara eksplisit ditransmisikan ke jenis data bernilai besar.

Keterangan

REPLACE melakukan perbandingan berdasarkan kolate input. Untuk melakukan perbandingan dalam kolamen tertentu, Anda dapat menggunakan COLLATE untuk menerapkan kolatasi eksplisit ke input.

0x0000 (char(0)) adalah karakter yang tidak terdefinisi dalam kolase Windows dan tidak dapat disertakan dalam REPLACE.

Contoh

Contoh berikut mengganti string cde dengan abcdefghicdexxx.

SELECT REPLACE('abcdefghicde','cde','xxx');  
GO  

Berikut adalah hasil yang ditetapkan.

------------  
abxxxfghixxx  
(1 row(s) affected)  

Contoh berikut menggunakan COLLATE fungsi .

SELECT REPLACE('This is a Test'  COLLATE Latin1_General_BIN,  
'Test', 'desk' );  
GO  

Berikut adalah hasil yang ditetapkan.

------------  
This is a desk  
(1 row(s) affected)  

Contoh berikut menghitung jumlah spasi dalam kalimat menggunakan REPLACE fungsi . Pertama, ini menghitung panjang kalimat dengan LEN fungsi . Kemudian mengganti karakter ' ' dengan '' dengan REPLACE. Setelah proses ini, ia menghitung panjang kalimat lagi. Perbedaan yang dihasilkan adalah jumlah karakter spasi dalam kalimat.

DECLARE @STR NVARCHAR(100), @LEN1 INT, @LEN2 INT;
SET @STR = N'This is a sentence with spaces in it.';
SET @LEN1 = LEN(@STR);
SET @STR = REPLACE(@STR, N' ', N'');
SET @LEN2 = LEN(@STR);
SELECT N'Number of spaces in the string: ' + CONVERT(NVARCHAR(20), @LEN1 - @LEN2);

GO  

Berikut adalah hasil yang ditetapkan.

------------  
Number of spaces in the sentence: 7  

(1 row(s) affected)  

Lihat Juga

CONCAT (T-SQL)
CONCAT_WS (T-SQL)
FORMATMESSAGE (Transact-SQL)
QUOTENAME (Transact-SQL)
TERBALIK (Transact-SQL)
STRING_AGG (T-SQL)
STRING_ESCAPE (T-SQL)
STUFF (Transact-SQL)
TERJEMAHKAN (Transact-SQL)
Tipe Data (Transact-SQL)
Fungsi String (Transact-SQL)