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     |  
+----+------------+--------------+ 
sql-string-functions.htm
Advertisements