SQL - TRANSLATE() 函式



SQL 的TRANSLATE()函式用於轉換(替換)字串中的字元。

它接受三個引數strcharacterstranslations,並返回第一個引數的字串,其中第二個引數中指定的字元被第三個引數中指定的字元替換。

重要事項

  • str 引數可以是任何字元資料型別,例如:(nvarchar、varchar、nchar 等)。

  • characters 引數可以是任何字元資料型別。

  • translations 引數的資料型別和長度必須與 characters 相同。

  • 如果 characters 和 translations 的長度不同,TRANSLATE() 函式將返回錯誤。

  • 如果任何引數作為 NULL 傳遞,此函式將返回 NULL。

  • 不能將數值作為引數傳遞給它。

以下是 SQL TRANSLATE() 函式的語法:

TRANSLATE(str, characters , translations)

引數

  • str − 要搜尋的字串表示式。

  • characters − 包含應替換的字元的字串表示式。

  • translations − 包含替換字元的字串表示式。

示例

在下面的示例中,我們使用TRANSLATE()函式來轉換(替換)字串‘tutorialspoint’‘tp’指定的字元為‘TP’

SELECT TRANSLATE('tutorialspoint','tp', 'TP') As New_value; 

輸出

以下是上述語句的輸出:

+-----------------+
| New_value       |
+-----------------+
| TuTorialsPoinT  |
+-----------------+

示例

如果 characters 和 translations 的長度不同,SQL 的TRANSLATE()函式將丟擲錯誤。

在這個例子中,我們使用TRANSLATE()函式來轉換(替換)字串‘@tutorials#point$’‘@#$’指定的字元為‘@#’

SELECT TRANSLATE('@tutorials#point$','@#$', '@#') As New_value;

輸出

執行上述 SQL 查詢時,它將丟擲以下錯誤:

The second and third arguments of the TRANSLATE built-in function must contain an equal number of characters.

示例

如果任何引數作為NULL傳遞給此函式,它將返回 NULL。

SELECT TRANSLATE(null,'h', 'o') As New_value; 

輸出

上述語句產生以下輸出:

+---------------+
| New_value     |
+---------------+
| NULL          |
+---------------+

示例

您還可以將表列作為引數傳遞給TRANSLATE()函式,以從列的內容中轉換(替換)指定的字元。假設我們使用CREATE語句建立了一個名為Customers的表,如下所示:

CREATE TABLE CUSTOMERS(    
ID INT NOT NULL,    
FIRST_NAME VARCHAR (20),
LAST_NAME VARCHAR(20),s
AGE INT NOT NULL,    
ADDRESS CHAR (25) ,    
SALARY DECIMAL (18, 2));

現在讓我們使用 INSERT 語句向 Customers 表中插入一些記錄,如下所示:

INSERT INTO CUSTOMERS VALUES (1, 'Ramesh','KUMAR', 32, 'Ahmedabad', 2000.00 ); 
INSERT INTO CUSTOMERS VALUES (2, 'Khilan','Verma', 25, 'Delhi', 1500.00 ); 
INSERT INTO CUSTOMERS VALUES (3, 'kaushik','Gupta', 23, 'Kota', 2000.00 ); 
INSERT INTO CUSTOMERS VALUES (4, 'Chaitali','Pal', 25, 'Mumbai', 6500.00 );

以下 SQL 查詢從Customers表的FIRST_NAME列的內容中轉換(替換)指定的字元:

SELECT ID, FIRST_NAME, TRANSLATE(FIRST_NAME, 'a', 'A') AS New_value FROM CUSTOMERS;

輸出

以下是上述查詢的輸出:

+----+------------+--------------+ 
| ID | FIRST_NAME | New_value    |   
+----+------------+--------------+ 
|  1 | Ramesh     | RAmesh       |   
|  2 | Khilan     | KhilAn       |   
|  3 | kaushik    | kAushik      |  
|  4 | Chaitali   | ChAitAli     |  
+----+------------+--------------+ 
sql-string-functions.htm
廣告