Die Funktion TRANSLATE - Amazon Redshift

Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting.

Die Funktion TRANSLATE

Ersetzt für einen bestimmten Ausdruck alle Vorkommen von angegebenen Zeichen durch angegebene Ersatzzeichen. Vorhandene Zeichen werden aufgrund Ihrer Positionen in den Argumenten characters_to_replace und characters_to_substitute zu Ersatzzeichen zugeordnet. Wenn im Argument characters_to_replace mehr Zeichen als im Argument characters_to_substitute angegeben sind, werden die zusätzlichen Zeichen aus dem Argument characters_to_replace im Rückgabewert ausgelassen.

TRANSLATE ist Die Funktion REPLACE und Die Funktion REGEXP_REPLACE ähnlich. Während REPLACE jedoch eine ganze Zeichenfolge durch eine andere Zeichenfolge ersetzt und REGEXP_REPLACE eine Zeichenfolge nach einem regulären Ausdrucksmuster durchsucht, führt TRANSLATE mehrere Einzelzeichenersetzungen aus.

Wenn ein Argument null ist, ist der Rückgabewert NULL.

Syntax

TRANSLATE( expression, characters_to_replace, characters_to_substitute )

Argumente

expression

Der Ausdruck, der übersetzt werden soll.

characters_to_replace

Eine Zeichenfolge, die die Zeichen enthält, die ersetzt werden sollen.

characters_to_substitute

Eine Zeichenfolge, die die Zeichen enthält, die ersetzt werden sollen.

Rückgabetyp

VARCHAR

Beispiele

Verwenden Sie das folgende Beispiel, um mehrere Zeichen in einer Zeichenfolge zu ersetzen.

SELECT TRANSLATE('mint tea', 'inea', 'osin'); +-----------+ | translate | +-----------+ | most tin | +-----------+

In den folgenden Beispielen werden Daten aus der Tabelle USERS in der TICKIT-Beispieldatenbank verwendet. Weitere Informationen finden Sie unter Beispieldatenbank.

Verwenden Sie das folgende Beispiel, um für alle Werte in einer Spalte das Zeichen @ durch einen Punkt zu ersetzen.

SELECT email, TRANSLATE(email, '@', '.') as obfuscated_email FROM users LIMIT 10; +---------------------------------------+---------------------------------------+ | email | obfuscated_email | +---------------------------------------+---------------------------------------+ | Cum@accumsan.com | Cum.accumsan.com | | lorem.ipsum@Vestibulumante.com | lorem.ipsum.Vestibulumante.com | | non.justo.Proin@ametconsectetuer.edu | non.justo.Proin.ametconsectetuer.edu | | non.ante.bibendum@porttitortellus.org | non.ante.bibendum.porttitortellus.org | | eros@blanditatnisi.org | eros.blanditatnisi.org | | augue@Donec.ca | augue.Donec.ca | | cursus@pedeacurna.edu | cursus.pedeacurna.edu | | at@Duis.com | at.Duis.com | | quam@facilisisvitaeorci.ca | quam.facilisisvitaeorci.ca | | mi.lorem@nunc.edu | mi.lorem.nunc.edu | +---------------------------------------+---------------------------------------+

Verwenden Sie das folgende Beispiel, um für alle Werte in einer Spalte Leerzeichen durch Unterstriche zu ersetzen und Punkte zu entfernen.

SELECT city, TRANSLATE(city, ' .', '_') FROM users WHERE city LIKE 'Sain%' OR city LIKE 'St%' GROUP BY city ORDER BY city; +----------------+---------------+ | city | translate | +----------------+---------------+ | Saint Albans | Saint_Albans | | Saint Cloud | Saint_Cloud | | Saint Joseph | Saint_Joseph | | Saint Louis | Saint_Louis | | Saint Paul | Saint_Paul | | St. George | St_George | | St. Marys | St_Marys | | St. Petersburg | St_Petersburg | | Stafford | Stafford | | Stamford | Stamford | | Stanton | Stanton | | Starkville | Starkville | | Statesboro | Statesboro | | Staunton | Staunton | | Steubenville | Steubenville | | Stevens Point | Stevens_Point | | Stillwater | Stillwater | | Stockton | Stockton | | Sturgis | Sturgis | +----------------+---------------+