Megosztás a következőn keresztül:


TRANSLATE (Transact-SQL)

A következőkre vonatkozik: Sql Server 2017 (14.x) és újabb verziók Azure SQL DatabaseFelügyelt Azure SQL-példány

Az első argumentumként megadott sztringet adja vissza, miután a második argumentumban megadott karakterek egy része a harmadik argumentumban megadott célkarakterekké lesz lefordítva.

Szemantika

TRANSLATE ( inputString, characters, translations )

Arguments

inputString

A keresendő sztringkifejezés . Az inputString bármilyen karakter adattípus lehet (nvarchar, varchar, nchar, char).

Karakterek

Lecserélendő karaktereket tartalmazó sztringkifejezés. a karakterek bármilyen típusú karaktert tartalmazhatnak.

Fordítások

A helyettesítő karaktereket tartalmazó sztringkifejezés. a fordítások adattípusának és hosszának meg kell egyeznie a karakterekkel.

Visszatérési típusok

Olyan karakterkifejezést ad vissza, amelynek adattípusa megegyezik az inputString értékével, ahol a második argumentumban szereplő karakterek helyébe a harmadik argumentum megfelelő karakterei kerülnek.

Megjegyzések

TRANSLATE hibaüzenetet ad vissza, ha a karakterek és a fordítási kifejezések eltérő hosszúságúak. TRANSLATE NULL értéket ad vissza, ha az argumentumok bármelyike NULL.

A függvény viselkedése TRANSLATE hasonló több REPLACE függvényhez. TRANSLATE azonban egyetlen karaktert inputString sem cserél le többször. A paraméter egyetlen értéke characters több karaktert is helyettesíthet a paraméterben inputString.

Ez eltér a több REPLACE függvény viselkedésétől, mivel minden függvényhívás az összes releváns karaktert lecserélné, még akkor is, ha egy korábbi beágyazott REPLACE függvényhívás váltotta volna fel őket.

TRANSLATE az SC-rendezés mindig tisztában van. További információ a kiegészítő rendezésekről: Rendezés és Unicode-támogatás.

Példák

A. Cserélje le a négyzetes és a kapcsos kapcsos zárójeleket normál kapcsos zárójelre

Az alábbi lekérdezés zárójelekkel helyettesíti a bemeneti sztring négyzetes és kapcsos zárójeleit:

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

Itt van az eredmények összessége.

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

A CSERE egyenértékű hívásai

Az alábbi SELECT utasításban négy beágyazott hívásból álló csoport jelenik meg a REPLACE függvényhez. Ez a csoport megegyezik az előző SELECT függvény TRANSLATE függvényével:

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

B. GeoJSON-pontok konvertálása WKT-vé

A GeoJSON számos földrajzi adatstruktúra kódolására használható formátum. A függvény segítségével a TRANSLATE fejlesztők egyszerűen konvertálhatják a GeoJSON-pontokat WKT formátumba, és fordítva. Az alábbi lekérdezés a bemenet négyzetes és kapcsos zárójeleit normál kapcsos zárójelekre cseréli:

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

Itt van az eredmények összessége.

Point Koordináták
(137.4 72.3) [137.4,72.3]

C. A TRANSLATE függvény használata

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

Itt van az eredmények összessége.

Lefordított Helyébe
bcddef ddddef

Lásd még