SQL - TRANSLATE() Function
The SQL TRANSLATE() function is used to translate(replace) the characters from the string.
It accepts three parameters str, characters, and translations, and returns a string from the first argument after that characters specified in the second argument and translated into the characters specified in the third argument.
Important Points
The str parameter can be any character data type like − (nvarchar, varchar, nchar, etc.).
The characters parameters can be any character data type.
The translations parameter must be the same datatype and length as the characters.
The TRANSLATE() function will return an error if characters and translations have different lengths.
If any of the arguments are passed as NULL, this function will return NULL in the result.
You canât pass the numeric value as an argument to it.
Following is the syntax of the SQL TRANSLATE() function −
TRANSLATE(str, characters , translations)
Parameters
str − It is a string expression to be searched.
characters − It is a string expression containing characters that should be replaced.
translations − It is a string expression containing the replacement characters.
Example
In the following example,we are using the TRANSLATE() function to translate(replace) the characters âtpâ with the specified characters âTPâ from the string âtutorialspointâ.
SELECT TRANSLATE('tutorialspoint','tp', 'TP') As New_value;
Output
Following is the output of the above statement −
+-----------------+ | New_value | +-----------------+ | TuTorialsPoinT | +-----------------+
Example
The SQL TRANSLATE() function throws an error, if characters and translations have different lengths.
In this example, we are using the TRANSLATE() function to translate(replace) the characters â@#$â with the specified characters â@#â from the string â@tutorials#point$â.
SELECT TRANSLATE('@tutorials#point$','@#$', '@#') As New_value;
Output
On executing the above SQL query, it throws the following error −
The second and third arguments of the TRANSLATE built-in function must contain an equal number of characters.
Example
If any arguments are passed as NULL to this function, it will return NULL in the result.
SELECT TRANSLATE(null,'h', 'o') As New_value;
Output
The above statement produces the following output −
+---------------+ | New_value | +---------------+ | NULL | +---------------+
Example
You can also pass a table column as an argument to the TRANSLATE() function to translate(replace) the characters with the specified characters from the content of the column. Assume we have created a table with the Customers using the CREATE statement as follows −
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));
Now let's insert some records into the customers table using the INSERT statement as follows −
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 );
The Following SQL query translates (replaces) the characters with the specified characters from the content of the column FIRST_NAME of the Customers table −
SELECT ID, FIRST_NAME, TRANSLATE(FIRST_NAME, 'a', 'A') AS New_value FROM CUSTOMERS;
Output
Following is the output of the above query −
+----+------------+--------------+ | ID | FIRST_NAME | New_value | +----+------------+--------------+ | 1 | Ramesh | RAmesh | | 2 | Khilan | KhilAn | | 3 | kaushik | kAushik | | 4 | Chaitali | ChAitAli | +----+------------+--------------+