Aracılığıyla paylaş


TRANSLATE (Transact-SQL)

Şunlar için geçerlidir: SQL Server 2017 (14.x) ve sonraki sürümleri Azure SQL VeritabanıAzure SQL Yönetilen Örneği

İkinci bağımsız değişkende belirtilen bazı karakterler üçüncü bağımsız değişkende belirtilen bir hedef karakter kümesine çevrildikten sonra, ilk bağımsız değişken olarak sağlanan dizeyi döndürür.

Sözdizimi

TRANSLATE ( inputString, characters, translations )

Arguments

inputString

Aranacak dize ifadesi . inputString herhangi bir karakter veri türü (nvarchar, varchar, nchar, char) olabilir.

Karakter

Değiştirilmesi gereken karakterleri içeren bir dize ifadesi . karakterler herhangi bir karakter veri türü olabilir.

Çeviri -leri

Yeni karakterleri içeren bir dize ifadesi . çevirileri, karakterlerle aynı veri türü ve uzunluğu olmalıdır.

Dönüş türleri

İkinci bağımsız değişkendeki karakterlerin üçüncü bağımsız değişkendeki eşleşen karakterlerle değiştirildiği inputString ile aynı veri türünde bir karakter ifadesi döndürür.

Açıklamalar

TRANSLATE karakterlerin ve çeviri ifadelerinin uzunlukları farklıysa hata döndürür. TRANSLATE bağımsız değişkenlerden herhangi biri NULL ise NULL döndürür.

İşlevin TRANSLATE davranışı, birden çok DEĞİşTİr işlevinin kullanılmasına benzer. TRANSLATE ancak tek tek karakterleri inputString birden çok kez değiştirmez. parametresindeki characters tek bir değer içindeki birden çok karakterin inputStringyerini alabilir.

Bu, önceki bir iç içe REPLACE işlev çağrısıyla değiştirilse bile her işlev çağrısı tüm ilgili karakterleri değiştireceğinden, birden çok REPLACE işlevin davranışına benzer değildir.

TRANSLATE her zaman SC harmanlamanın farkındadır. Tamamlayıcı harmanlamalar hakkında daha fazla bilgi için bkz. Harmanlama ve Unicode desteği.

Örnekler

A. Kare ve küme ayraçlarını normal küme ayraçlarıyla değiştirme

Aşağıdaki sorgu, giriş dizesindeki kare ve küme ayraçlarını parantezlerle değiştirir:

SELECT TRANSLATE('2*[3+4]/{7-2}', '[]{}', '()()');

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

2*(3+4)/(7-2)

DEĞİşTİr'e eşdeğer çağrılar

Aşağıdaki SELECT deyiminde, DEĞİşTİr işlevine yapılan dört iç içe çağrıdan oluşan bir grup görürsünüz. Bu grup, önceki SELECT içindeki TRANSLATE işlevine yapılan tek çağrıya eşdeğerdir:

SELECT
REPLACE
(
      REPLACE
      (
            REPLACE
            (
                  REPLACE
                  (
                        '2*[3+4]/{7-2}',
                        '[',
                        '('
                  ),
                  ']',
                  ')'
            ),
            '{',
            '('
      ),
      '}',
      ')'
);

B. GeoJSON noktalarını WKT'ye dönüştürme

GeoJSON, çeşitli coğrafi veri yapılarını kodlamaya yönelik bir biçimdir. İşlevle TRANSLATE geliştiriciler GeoJSON noktalarını kolayca WKT biçimine dönüştürebilir ve bunun tersi de geçerlidir. Aşağıdaki sorgu, girişteki kare ve küme ayraçlarını normal küme ayraçlarıyla değiştirir:

SELECT TRANSLATE('[137.4,72.3]' , '[,]', '( )') AS Point,
    TRANSLATE('(137.4 72.3)' , '( )', '[,]') AS Coordinates;

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

Point Koordinat -ları
(137.4 72.3) [137.4,72.3]

C. TRANSLATE işlevini kullanma

SELECT TRANSLATE('abcdef','abc','bcd') AS Translated,
       REPLACE(REPLACE(REPLACE('abcdef','a','b'),'b','c'),'c','d') AS Replaced;

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

Çevrilmiş Değiştirilir
bcddef ddddef

Ayrıca bakınız