SQL TRANSLATE()函数
SQL TRANSLATE() 函数用于翻译(替换)字符串中的字符。
它接受三个参数 str 、 characters 和 translations ,并返回第一个参数中在第二个参数指定的字符替换为第三个参数指定的字符后的字符串。
重要要点
- str参数可以是任何字符数据类型,如(nvarchar,varchar,nchar等)。
-
characters参数可以是任何字符数据类型。
-
translations参数必须与characters参数具有相同的数据类型和长度。
-
如果characters和translations的长度不同,TRANSLATE()函数将返回错误。
-
如果任何参数传递为NULL,该函数将在结果中返回NULL。
-
您不能将数字值作为参数传递给它。
下面是SQL TRANSLATE() 函数的语法−
TRANSLATE(str, characters , translations)
参数
- str - 要搜索的字符串表达式。
-
characters - 包含需要替换的字符的字符串表达式。
-
translations - 包含替换字符的字符串表达式。
示例
在以下示例中,我们使用 TRANSLATE() 函数将字符串 ‘tp’ 中的字符替换为指定的字符 ‘TP’ 。
SELECT TRANSLATE('tutorialspoint','tp', 'TP') As New_value;
输出
以下是上述声明的输出结果−
+-----------------+
| New_value |
+-----------------+
| TuTorialsPoinT |
+-----------------+
示例
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查询将从列 FIRST_NAME 的内容中使用指定的字符加以替换,来进行翻译:
Customers 表
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 |
+----+------------+--------------+