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
广告