TRANSLATE函數 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

TRANSLATE函數

對於給定的表達式,以指定的替換值取代所有出現的指定字元。現有字元依位置映射至 characters_to_replacecharacters_to_substitute 引數中的替換字元。如果 characters_to_replace 引數中指定的字元數比 characters_to_substitute 引數更多,傳回值中會省略 characters_to_replace 引數中額外的字元。

TRANSLATE與REPLACE函數和類似REGEXP_ REPLACE 函數,不同之處在於會以另一個字串REPLACE取代整個字串,而 REGEXP _ REPLACE 可讓您搜尋字串中的規則運算式模式,同時TRANSLATE進行多個單一字元取代。

如果任何引數為 Null,則傳回值為 NULL

語法

TRANSLATE( expression, characters_to_replace, characters_to_substitute )

引數

運算式

要轉換的表達式。

characters_to_replace

包含要取代之字元的字串。

characters_to_substitute

包含替換字元的字串。

傳回類型

VARCHAR

範例

若要取代字串中的幾個字元,請使用下列範例。

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

下列範例使用範例資料庫中資料USERS表中的TICKIT資料。如需詳細資訊,請參閱範本資料庫

若要對某欄的所有值,以點取代 at 符號 (@),請使用下列範例。

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 | +---------------------------------------+---------------------------------------+

若要對某欄的所有值,以點底線取代空格並剔除點,請使用下列範例。

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 | +----------------+---------------+