Aracılığıyla paylaş


DEĞIŞTIRIN (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

Belirli bir dizi değerinin tüm örneklerini başka bir dizi değeriyle değiştirir.

Transact-SQL söz dizimi kuralları

Sözdizimi

REPLACE ( string_expression , string_pattern , string_replacement )  

Arguments

string_expression
Aranan dize ifadesi mi? string_expression karakter veya ikili veri tipinde olabilir.

string_pattern
Alt diziyi bulmak için. string_pattern karakter veya ikili veri türünde olabilir. string_pattern bir sayfaya sığan maksimum bayt sayısını aşmamalıdır. Eğer string_pattern boş bir diziye ('') ise, string_expression değişmeden döner.

string_replacement
Yedek ip. string_replacement karakter veya ikili veri türünde olabilir.

Dönüş Türleri

Giriş argümanlarından biri nvarchar veri tipindeyse nvarchar döndürür; aksi takdirde, REPLACE varchar döner.

Argümanlardan herhangi biri NULL ise NULL döndürür.

Eğer string_expressionvarchar(max) veya nvarchar(max) türünde değilse, REPLACE dönüş değerini 8.000 baytta keser. 8.000 bayttan büyük değerleri döndürmek için string_expression açıkça büyük değerli bir veri türüne aktarılmalıdır.

Açıklamalar

REPLACE ise girdilerin karşılaştırılmasına göre karşılaştırmalar yapar. Belirli bir derlemede karşılaştırma yapmak için, COLLATE kullanarak girdiye açık bir derleme uygulayabilirsiniz.

0x0000 (char(0)) Windows derlemelerinde tanımlanmamış bir karakterdir ve REPLACE kapsamına dahil edilemez.

Örnekler

Aşağıdaki örnek, içindeki abcdefghicdexxxdizicde, . ile değiştirir.

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

Sonuç kümesi aşağıdadır.

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

Aşağıdaki örnek fonksiyonu COLLATE kullanır.

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

Sonuç kümesi aşağıdadır.

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

Aşağıdaki örnek, bir cümledeki boşluk sayısını şu REPLACE fonksiyon kullanarak hesaplar. İlk olarak, cümlenin uzunluğunu fonksiyonla LEN hesaplar. Daha sonra '' karakterlerini '' ile değiştirir.REPLACE Bu işlemden sonra, cümlenin uzunluğunu tekrar hesaplar. Ortaya çıkan fark, cümledeki boşluk karakter sayısıdır.

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  

Sonuç kümesi aşağıdadır.

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

(1 row(s) affected)  

Ayrıca Bkz.

CONCAT (Transact-SQL)
CONCAT_WS (Transact-SQL)
FORMATMESSAGE (Transact-SQL)
ALINTI (Transact-SQL)
TERS (Transact-SQL)
STRING_AGG (Transact-SQL)
STRING_ESCAPE (Transact-SQL)
ŞEYLER (Transact-SQL)
ÇEVIR (Transact-SQL)
Veri Türleri (Transact-SQL)
Dize İşlevleri (Transact-SQL)