REPLACE (Transact-SQL)

Berlaku untuk:yes SQL Server (semua versi yang didukung) YesAzure SQL Database YesAzure SQL Managed Instance yesAzure Synapse Analytics Analytics yesPlatform System (PDW)

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

Topic link iconKonvensi Sintaksis T-SQL

Sintaks

REPLACE ( string_expression , string_pattern , string_replacement )  

Catatan

Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan 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 dapat berupa karakter atau jenis data 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 Pengembalian

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 jenis varchar(max) atau nvarchar(max), 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 kolab input. Untuk melakukan perbandingan dalam kolamen tertentu, Anda dapat menggunakan COLLATE untuk menerapkan kolamen 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 (SQL Bertransaksi)
CONCAT_WS (SQL Bertransaksi)
FORMATMESSAGE (SQL bertransaksi)
QUOTENAME (SQL Bertransaksi)
TERBALIK (SQL bertransaksi)
STRING_AGG (T-SQL)
STRING_ESCAPE (SQL Bertransaksi)
STUFF (Transact-SQL)
TERJEMAHKAN (SQL Bertransaksi)
Tipe Data (Transact-SQL)
Fungsi String (SQL Transact)