w3resource

SQL TRIM() function

Understanding the SQL TRIM() Function

The SQL TRIM() removes leading and trailing characters(or both) from a character string.

The SQL `TRIM()` function is essential for data manipulation, allowing you to remove unwanted characters from strings. Whether it's cleaning up user input or standardizing data formats, `TRIM()` helps ensure your data is neat and consistent. This guide will walk you through the `TRIM()` function's syntax, its use across different SQL databases, and practical examples of how to apply it effectively.

Syntax:

TRIM( [ [{LEADING | TRAILING | BOTH}] [removal_char]
FROM ]   target_string    [COLLATE collation_name])

PostgreSQL and Oracle, the platforms that support the SQL syntax of TRIM().

Parameters:
Name Description
LEADING Removes characters from the start of the string.
TRAILING Removes characters from the end of the string.
BOTH Removes characters from both ends of the string.
removal_char The specific character to be removed (default is a space).
target_string The string from which characters are to be removed.
COLLATE Defines the collation for the operation, which can affect how characters are compared.

MySQL Syntax:

TRIM([{BOTH | LEADING | TRAILING} [remstr]
FROM] str); TRIM([remstr FROM] str)
Visual Presentation :

Sql trim() function pictorial presentation

Visualizing TRIM() Operations
Original String Trimmed String Operation
' MADAM ' ' MADAM' `TRIM(TRAILING ' ' FROM string)`
'MADAM' 'MADAM ' `TRIM(LEADING ' ' FROM string)`
'MADAM' 'MADAM' `TRIM(BOTH 'M' FROM string)`
'MADAM' 'MADAM' `TRIM(' ' FROM string)`
' MADAM ' 'MADAM' `TRIM(FROM string)`

Application of TRIM()

In the subsequent pages, we have discussed how to apply TRIM() with various SQL clauses. we have used Oracle 10g Express Edition.

Example:

To remove the right most '1' from '1234567896541' from the DUAL table, the following SQL statement can be used :


-- This SQL query trims trailing characters from a given string and returns the result with an alias.
-- SELECT statement begins
SELECT 
    TRIM(TRAILING '1' FROM 1234567896541) -- Remove trailing occurrences of '1' from the string '1234567896541'
    AS TRAILING_TRIM -- Alias the result of the trailing trim operation as 'TRAILING_TRIM'
FROM 
    dual; -- Dual is a dummy table in Oracle, used here as a placeholder since we're not actually querying any table

Explanation:

  • This SQL code utilizes a SELECT statement to demonstrate the use of the TRIM function with the TRAILING keyword.
  • The TRIM function removes leading and trailing characters from a string.
  • In this specific query, the TRAILING keyword specifies that only trailing occurrences of the specified character should be removed.
  • The character '1' is specified as the character to be trimmed from the end of the string.
  • The string '1234567896541' is provided as the input string.
  • The result of the trailing trim operation is assigned an alias 'TRAILING_TRIM'.
  • The query is executed against the 'dual' table, which is a system-generated table in Oracle. It's commonly used as a placeholder for single-row queries or expressions.

Output:

TRAILING_TRIM
------------
123456789654

SQL TRIM() with trailing character

Sample table: customer
+-----------+-------------+-------------+--------------+--------------+-------+-------------+-------------+-------------+---------------+--------------+------------+  
|CUST_CODE  | CUST_NAME   | CUST_CITY   | WORKING_AREA | CUST_COUNTRY | GRADE | OPENING_AMT | RECEIVE_AMT | PAYMENT_AMT |OUTSTANDING_AMT| PHONE_NO     | AGENT_CODE |
+-----------+-------------+-------------+--------------+--------------+-------+-------------+-------------+-------------+---------------+--------------+------------+
| C00013    | Holmes      | London      | London       | UK           |     2 |     6000.00 |     5000.00 |     7000.00 |       4000.00 | BBBBBBB      | A003       |
| C00001    | Micheal     | New York    | New York     | USA          |     2 |     3000.00 |     5000.00 |     2000.00 |       6000.00 | CCCCCCC      | A008       |
| C00020    | Albert      | New York    | New York     | USA          |     3 |     5000.00 |     7000.00 |     6000.00 |       6000.00 | BBBBSBB      | A008       |
| C00025    | Ravindran   | Bangalore   | Bangalore    | India        |     2 |     5000.00 |     7000.00 |     4000.00 |       8000.00 | AVAVAVA      | A011       |
| C00024    | Cook        | London      | London       | UK           |     2 |     4000.00 |     9000.00 |     7000.00 |       6000.00 | FSDDSDF      | A006       |
| C00015    | Stuart      | London      | London       | UK           |     1 |     6000.00 |     8000.00 |     3000.00 |      11000.00 | GFSGERS      | A003       |
| C00002    | Bolt        | New York    | New York     | USA          |     3 |     5000.00 |     7000.00 |     9000.00 |       3000.00 | DDNRDRH      | A008       |
| C00018    | Fleming     | Brisban     | Brisban      | Australia    |     2 |     7000.00 |     7000.00 |     9000.00 |       5000.00 | NHBGVFC      | A005       |
| C00021    | Jacks       | Brisban     | Brisban      | Australia    |     1 |     7000.00 |     7000.00 |     7000.00 |       7000.00 | WERTGDF      | A005       |
| C00019    | Yearannaidu | Chennai     | Chennai      | India        |     1 |     8000.00 |     7000.00 |     7000.00 |       8000.00 | ZZZZBFV      | A010       |
| C00005    | Sasikant    | Mumbai      | Mumbai       | India        |     1 |     7000.00 |    11000.00 |     7000.00 |      11000.00 | 147-25896312 | A002       |
| C00007    | Ramanathan  | Chennai     | Chennai      | India        |     1 |     7000.00 |    11000.00 |     9000.00 |       9000.00 | GHRDWSD      | A010       |
| C00022    | Avinash     | Mumbai      | Mumbai       | India        |     2 |     7000.00 |    11000.00 |     9000.00 |       9000.00 | 113-12345678 | A002       |
| C00004    | Winston     | Brisban     | Brisban      | Australia    |     1 |     5000.00 |     8000.00 |     7000.00 |       6000.00 | AAAAAAA      | A005       |
| C00023    | Karl        | London      | London       | UK           |     0 |     4000.00 |     6000.00 |     7000.00 |       3000.00 | AAAABAA      | A006       |
| C00006    | Shilton     | Torento     | Torento      | Canada       |     1 |    10000.00 |     7000.00 |     6000.00 |      11000.00 | DDDDDDD      | A004       |
| C00010    | Charles     | Hampshair   | Hampshair    | UK           |     3 |     6000.00 |     4000.00 |     5000.00 |       5000.00 | MMMMMMM      | A009       |
| C00017    | Srinivas    | Bangalore   | Bangalore    | India        |     2 |     8000.00 |     4000.00 |     3000.00 |       9000.00 | AAAAAAB      | A007       |
| C00012    | Steven      | San Jose    | San Jose     | USA          |     1 |     5000.00 |     7000.00 |     9000.00 |       3000.00 | KRFYGJK      | A012       |
| C00008    | Karolina    | Torento     | Torento      | Canada       |     1 |     7000.00 |     7000.00 |     9000.00 |       5000.00 | HJKORED      | A004       |
| C00003    | Martin      | Torento     | Torento      | Canada       |     2 |     8000.00 |     7000.00 |     7000.00 |       8000.00 | MJYURFD      | A004       |
| C00009    | Ramesh      | Mumbai      | Mumbai       | India        |     3 |     8000.00 |     7000.00 |     3000.00 |      12000.00 | Phone No     | A002       |
| C00014    | Rangarappa  | Bangalore   | Bangalore    | India        |     2 |     8000.00 |    11000.00 |     7000.00 |      12000.00 | AAAATGF      | A001       |
| C00016    | Venkatpati  | Bangalore   | Bangalore    | India        |     2 |     8000.00 |    11000.00 |     7000.00 |      12000.00 | JRTVFDD      | A007       |
| C00011    | Sundariya   | Chennai     | Chennai      | India        |     3 |     7000.00 |    11000.00 |     7000.00 |      11000.00 | PPHGRTS      | A010       |
+-----------+-------------+-------------+--------------+--------------+-------+-------------+-------------+-------------+---------------+--------------+------------+

To remove right most 'n' from the 'cust_name' column of 'customer' table, the following SQL statement can be used :


-- This SQL query trims trailing characters from a column in the 'customer' table and returns the result.
-- SELECT statement begins
SELECT 
    TRIM(TRAILING 'n' FROM cust_name) -- Remove trailing occurrences of 'n' from the column 'cust_name' in the 'customer' table
FROM 
    customer; -- Query data from the 'customer' table

Explanation:

  • This SQL code is a SELECT statement that demonstrates the use of the TRIM function with the TRAILING keyword to remove trailing characters from a column in a table.
  • The TRIM function is applied to the 'cust_name' column in the 'customer' table.
  • The TRAILING keyword specifies that only trailing occurrences of the specified character ('n' in this case) should be removed.
  • The result of the trailing trim operation is returned as part of the query result set.
  • The query is executed against the 'customer' table, which presumably contains customer data, and retrieves the trimmed 'cust_name' column.

Output

TRIM(TRAILING'N'FROMCUST_NAME)
-----------------------------------
Holmes
Micheal
Albert
Ravindra
Cook
Stuart
Bolt
Fleming
Jacks
Yearannaidu
Sasikant
Ramanatha
Avinash
Winsto
Karl
Shilto
Charles
Srinivas
Steve
Karolina
Marti
Ramesh
Rangarappa
Venkatpati
Sundariya

Using TRIM() in a WHERE Clause

Sample table: customer
+-----------+-------------+-------------+--------------+--------------+-------+-------------+-------------+-------------+---------------+--------------+------------+  
|CUST_CODE  | CUST_NAME   | CUST_CITY   | WORKING_AREA | CUST_COUNTRY | GRADE | OPENING_AMT | RECEIVE_AMT | PAYMENT_AMT |OUTSTANDING_AMT| PHONE_NO     | AGENT_CODE |
+-----------+-------------+-------------+--------------+--------------+-------+-------------+-------------+-------------+---------------+--------------+------------+
| C00013    | Holmes      | London      | London       | UK           |     2 |     6000.00 |     5000.00 |     7000.00 |       4000.00 | BBBBBBB      | A003       |
| C00001    | Micheal     | New York    | New York     | USA          |     2 |     3000.00 |     5000.00 |     2000.00 |       6000.00 | CCCCCCC      | A008       |
| C00020    | Albert      | New York    | New York     | USA          |     3 |     5000.00 |     7000.00 |     6000.00 |       6000.00 | BBBBSBB      | A008       |
| C00025    | Ravindran   | Bangalore   | Bangalore    | India        |     2 |     5000.00 |     7000.00 |     4000.00 |       8000.00 | AVAVAVA      | A011       |
| C00024    | Cook        | London      | London       | UK           |     2 |     4000.00 |     9000.00 |     7000.00 |       6000.00 | FSDDSDF      | A006       |
| C00015    | Stuart      | London      | London       | UK           |     1 |     6000.00 |     8000.00 |     3000.00 |      11000.00 | GFSGERS      | A003       |
| C00002    | Bolt        | New York    | New York     | USA          |     3 |     5000.00 |     7000.00 |     9000.00 |       3000.00 | DDNRDRH      | A008       |
| C00018    | Fleming     | Brisban     | Brisban      | Australia    |     2 |     7000.00 |     7000.00 |     9000.00 |       5000.00 | NHBGVFC      | A005       |
| C00021    | Jacks       | Brisban     | Brisban      | Australia    |     1 |     7000.00 |     7000.00 |     7000.00 |       7000.00 | WERTGDF      | A005       |
| C00019    | Yearannaidu | Chennai     | Chennai      | India        |     1 |     8000.00 |     7000.00 |     7000.00 |       8000.00 | ZZZZBFV      | A010       |
| C00005    | Sasikant    | Mumbai      | Mumbai       | India        |     1 |     7000.00 |    11000.00 |     7000.00 |      11000.00 | 147-25896312 | A002       |
| C00007    | Ramanathan  | Chennai     | Chennai      | India        |     1 |     7000.00 |    11000.00 |     9000.00 |       9000.00 | GHRDWSD      | A010       |
| C00022    | Avinash     | Mumbai      | Mumbai       | India        |     2 |     7000.00 |    11000.00 |     9000.00 |       9000.00 | 113-12345678 | A002       |
| C00004    | Winston     | Brisban     | Brisban      | Australia    |     1 |     5000.00 |     8000.00 |     7000.00 |       6000.00 | AAAAAAA      | A005       |
| C00023    | Karl        | London      | London       | UK           |     0 |     4000.00 |     6000.00 |     7000.00 |       3000.00 | AAAABAA      | A006       |
| C00006    | Shilton     | Torento     | Torento      | Canada       |     1 |    10000.00 |     7000.00 |     6000.00 |      11000.00 | DDDDDDD      | A004       |
| C00010    | Charles     | Hampshair   | Hampshair    | UK           |     3 |     6000.00 |     4000.00 |     5000.00 |       5000.00 | MMMMMMM      | A009       |
| C00017    | Srinivas    | Bangalore   | Bangalore    | India        |     2 |     8000.00 |     4000.00 |     3000.00 |       9000.00 | AAAAAAB      | A007       |
| C00012    | Steven      | San Jose    | San Jose     | USA          |     1 |     5000.00 |     7000.00 |     9000.00 |       3000.00 | KRFYGJK      | A012       |
| C00008    | Karolina    | Torento     | Torento      | Canada       |     1 |     7000.00 |     7000.00 |     9000.00 |       5000.00 | HJKORED      | A004       |
| C00003    | Martin      | Torento     | Torento      | Canada       |     2 |     8000.00 |     7000.00 |     7000.00 |       8000.00 | MJYURFD      | A004       |
| C00009    | Ramesh      | Mumbai      | Mumbai       | India        |     3 |     8000.00 |     7000.00 |     3000.00 |      12000.00 | Phone No     | A002       |
| C00014    | Rangarappa  | Bangalore   | Bangalore    | India        |     2 |     8000.00 |    11000.00 |     7000.00 |      12000.00 | AAAATGF      | A001       |
| C00016    | Venkatpati  | Bangalore   | Bangalore    | India        |     2 |     8000.00 |    11000.00 |     7000.00 |      12000.00 | JRTVFDD      | A007       |
| C00011    | Sundariya   | Chennai     | Chennai      | India        |     3 |     7000.00 |    11000.00 |     7000.00 |      11000.00 | PPHGRTS      | A010       |
+-----------+-------------+-------------+--------------+--------------+-------+-------------+-------------+-------------+---------------+--------------+------------+

To check for cust_country that have trailing character 'a' and compares them to 'Indi' the following statement can be used.

SQL Code:


SELECT CUST_NAME, CUST_CITY, WORKING_AREA, CUST_COUNTRY  FROM customer
WHERE 
TRIM(TRAILING 'a' FROM cust_country) = 'Indi';

Output

+-------------+-------------+--------------+--------------+-
| CUST_NAME   | CUST_CITY   | WORKING_AREA | CUST_COUNTRY | 
+-------------+-------------+--------------+--------------+-
| Ravindran   | Bangalore   | Bangalore    | India        | 
| Yearannaidu | Chennai     | Chennai      | India        | 
| Sasikant    | Mumbai      | Mumbai       | India        | 
| Ramanathan  | Chennai     | Chennai      | India        | 
| Avinash     | Mumbai      | Mumbai       | India        | 
| Srinivas    | Bangalore   | Bangalore    | India        | 
| Ramesh      | Mumbai      | Mumbai       | India        | 
| Rangarappa  | Bangalore   | Bangalore    | India        | 
| Venkatpati  | Bangalore   | Bangalore    | India        | 
| Sundariya   | Chennai     | Chennai      | India        | 
+-------------+-------------+--------------+--------------+-

SQL TRIM() with leading character

To remove the left most '1' from the string '1234567896541' from the DUAL table, the following SQL statement can be used :

SQL Code:


-- This SQL query trims leading characters from a given string and returns the result with an alias.
-- SELECT statement begins
SELECT 
    TRIM(LEADING '1' FROM 1234567896541) -- Remove leading occurrences of '1' from the string '1234567896541'
    AS LEADING_TRIM -- Alias the result of the leading trim operation as 'LEADING_TRIM'
FROM 
    dual; -- Dual is a dummy table in Oracle, used here as a placeholder since we're not actually querying any table

Explanation:

  • This SQL code utilizes a SELECT statement to demonstrate the use of the TRIM function with the LEADING keyword.
  • The TRIM function removes leading and trailing characters from a string.
  • In this specific query, the LEADING keyword specifies that only leading occurrences of the specified character should be removed.
  • The character '1' is specified as the character to be trimmed from the beginning of the string.
  • The string '1234567896541' is provided as the input string.
  • The result of the leading trim operation is assigned an alias 'LEADING_TRIM'.
  • The query operates on the 'dual' table, a system-generated table in Oracle often used as a placeholder for single-row queries or expressions.

In the above example, the "LEADING_TRIM" is a column alias which will come as a column heading to the output.

Output:

LEADING_TRIM
------------
234567896541

SQL TRIM() on column with leading character

Sample table: customer
+-----------+-------------+-------------+--------------+--------------+-------+-------------+-------------+-------------+---------------+--------------+------------+  
|CUST_CODE  | CUST_NAME   | CUST_CITY   | WORKING_AREA | CUST_COUNTRY | GRADE | OPENING_AMT | RECEIVE_AMT | PAYMENT_AMT |OUTSTANDING_AMT| PHONE_NO     | AGENT_CODE |
+-----------+-------------+-------------+--------------+--------------+-------+-------------+-------------+-------------+---------------+--------------+------------+
| C00013    | Holmes      | London      | London       | UK           |     2 |     6000.00 |     5000.00 |     7000.00 |       4000.00 | BBBBBBB      | A003       |
| C00001    | Micheal     | New York    | New York     | USA          |     2 |     3000.00 |     5000.00 |     2000.00 |       6000.00 | CCCCCCC      | A008       |
| C00020    | Albert      | New York    | New York     | USA          |     3 |     5000.00 |     7000.00 |     6000.00 |       6000.00 | BBBBSBB      | A008       |
| C00025    | Ravindran   | Bangalore   | Bangalore    | India        |     2 |     5000.00 |     7000.00 |     4000.00 |       8000.00 | AVAVAVA      | A011       |
| C00024    | Cook        | London      | London       | UK           |     2 |     4000.00 |     9000.00 |     7000.00 |       6000.00 | FSDDSDF      | A006       |
| C00015    | Stuart      | London      | London       | UK           |     1 |     6000.00 |     8000.00 |     3000.00 |      11000.00 | GFSGERS      | A003       |
| C00002    | Bolt        | New York    | New York     | USA          |     3 |     5000.00 |     7000.00 |     9000.00 |       3000.00 | DDNRDRH      | A008       |
| C00018    | Fleming     | Brisban     | Brisban      | Australia    |     2 |     7000.00 |     7000.00 |     9000.00 |       5000.00 | NHBGVFC      | A005       |
| C00021    | Jacks       | Brisban     | Brisban      | Australia    |     1 |     7000.00 |     7000.00 |     7000.00 |       7000.00 | WERTGDF      | A005       |
| C00019    | Yearannaidu | Chennai     | Chennai      | India        |     1 |     8000.00 |     7000.00 |     7000.00 |       8000.00 | ZZZZBFV      | A010       |
| C00005    | Sasikant    | Mumbai      | Mumbai       | India        |     1 |     7000.00 |    11000.00 |     7000.00 |      11000.00 | 147-25896312 | A002       |
| C00007    | Ramanathan  | Chennai     | Chennai      | India        |     1 |     7000.00 |    11000.00 |     9000.00 |       9000.00 | GHRDWSD      | A010       |
| C00022    | Avinash     | Mumbai      | Mumbai       | India        |     2 |     7000.00 |    11000.00 |     9000.00 |       9000.00 | 113-12345678 | A002       |
| C00004    | Winston     | Brisban     | Brisban      | Australia    |     1 |     5000.00 |     8000.00 |     7000.00 |       6000.00 | AAAAAAA      | A005       |
| C00023    | Karl        | London      | London       | UK           |     0 |     4000.00 |     6000.00 |     7000.00 |       3000.00 | AAAABAA      | A006       |
| C00006    | Shilton     | Torento     | Torento      | Canada       |     1 |    10000.00 |     7000.00 |     6000.00 |      11000.00 | DDDDDDD      | A004       |
| C00010    | Charles     | Hampshair   | Hampshair    | UK           |     3 |     6000.00 |     4000.00 |     5000.00 |       5000.00 | MMMMMMM      | A009       |
| C00017    | Srinivas    | Bangalore   | Bangalore    | India        |     2 |     8000.00 |     4000.00 |     3000.00 |       9000.00 | AAAAAAB      | A007       |
| C00012    | Steven      | San Jose    | San Jose     | USA          |     1 |     5000.00 |     7000.00 |     9000.00 |       3000.00 | KRFYGJK      | A012       |
| C00008    | Karolina    | Torento     | Torento      | Canada       |     1 |     7000.00 |     7000.00 |     9000.00 |       5000.00 | HJKORED      | A004       |
| C00003    | Martin      | Torento     | Torento      | Canada       |     2 |     8000.00 |     7000.00 |     7000.00 |       8000.00 | MJYURFD      | A004       |
| C00009    | Ramesh      | Mumbai      | Mumbai       | India        |     3 |     8000.00 |     7000.00 |     3000.00 |      12000.00 | Phone No     | A002       |
| C00014    | Rangarappa  | Bangalore   | Bangalore    | India        |     2 |     8000.00 |    11000.00 |     7000.00 |      12000.00 | AAAATGF      | A001       |
| C00016    | Venkatpati  | Bangalore   | Bangalore    | India        |     2 |     8000.00 |    11000.00 |     7000.00 |      12000.00 | JRTVFDD      | A007       |
| C00011    | Sundariya   | Chennai     | Chennai      | India        |     3 |     7000.00 |    11000.00 |     7000.00 |      11000.00 | PPHGRTS      | A010       |
+-----------+-------------+-------------+--------------+--------------+-------+-------------+-------------+-------------+---------------+--------------+------------+

To remove left most 'S' from the 'cust_name' column of the 'customer' table, the following SQL statement can be used :


-- This SQL query trims leading characters from a column in the 'customer' table and returns the result.
-- SELECT statement begins
SELECT 
    TRIM(LEADING 'S' FROM cust_name) -- Remove leading occurrences of 'S' from the column 'cust_name' in the 'customer' table
FROM 
    customer; -- Query data from the 'customer' table

Explanation:

  • This SQL code is a SELECT statement that demonstrates the use of the TRIM function with the LEADING keyword.
  • The TRIM function is applied to the 'cust_name' column in the 'customer' table.
  • The LEADING keyword specifies that only leading occurrences of the specified character ('S' in this case) should be removed.
  • The result of the leading trim operation is returned as part of the query result set.
  • The query is executed against the 'customer' table, which presumably contains customer data, and retrieves the trimmed 'cust_name' column.

Output:

TRIM(LEADING'S'FROMCUST_NAME)
--------------------------------
Holmes
Micheal
Albert
Ravindran
Cook
tuart
Bolt
Fleming
Jacks
Yearannaidu
asikant
Ramanathan
Avinash
Winston
Karl
hilton
Charles
rinivas
teven
Karolina
Martin
Ramesh
Rangarappa
Venkatpati
undariya

SQL TRIM() from both side

To remove the left and right most '1' from the string '1234567896541' from the DUAL table, the following SQL statement can be used:

SQL Code:


-- This SQL query trims specified characters from both the beginning and end of a given string and returns the result with an alias.
-- SELECT statement begins
SELECT 
    TRIM('1' FROM 1234567896541) -- Remove occurrences of '1' from both the beginning and end of the string '1234567896541'
    AS BOTH_TRIM -- Alias the result of the trim operation as 'BOTH_TRIM'
FROM 
    dual; -- Dual is a dummy table in Oracle, used here as a placeholder since we're not actually querying any table

Explanation:

  • This SQL code is a SELECT statement that demonstrates the use of the TRIM function to remove specified characters from both the beginning and end of a string.
  • The TRIM function is applied to the string '1234567896541'.
  • The character '1' is specified as the character to be trimmed from both ends of the string.
  • The result of the trim operation is assigned an alias 'BOTH_TRIM'.
  • The query operates on the 'dual' table, a system-generated table in Oracle frequently utilized as a placeholder for single-row queries or expressions.

Output

BOTH_TRIM
-----------
23456789654

Removing Multiple Different Characters

SQL Code:


SELECT TRIM(BOTH '.,!' FROM '!!!Hello, World..') AS CleanedString;

Output

cleanedstring|
-------------+
Hello, World |

Real-World Applications of SQL TRIM()

Cleaning Up User Inputs:

User inputs often come with extra spaces or characters. Using 'TRIM()', we can clean up these inputs before processing or storing them:


INSERT INTO users (username) VALUES (TRIM(BOTH ' ' FROM '  newuser  '));

Preparing Data for Reports:

In reporting, ensuring data consistency is crucial. TRIM() can help standardize data fields:


SELECT TRIM(BOTH '-' FROM report_id) AS CleanedReportID FROM reports;

Working with Imported Data:

Imported data from external sources can have irregular formatting. Use TRIM() to clean up these entries:


UPDATE products SET product_code = TRIM(BOTH ' ' FROM product_code);

Comparative Database Support:
Database Syntax Example Notes
PostgreSQL TRIM(BOTH ' ' FROM 'string') Fully supports all options.
Oracle TRIM(BOTH ' ' FROM 'string') FROM dual Uses dual table for queries.
MySQL TRIM(BOTH ' ' FROM 'string') Syntax similar to PostgreSQL.
SQL Server TRIM('string') Defaults to trimming spaces.

Frequently Asked Questions (FAQ) - SQL TRIM() Function

1. What is the SQL TRIM() function?

The SQL TRIM() function is used to remove unwanted characters from the beginning, end, or both ends of a string. It is commonly used to clean up or standardize data within SQL databases.

2. What are the main uses of the SQL TRIM() function?

The TRIM() function is particularly useful for:

  • Cleaning user input by removing unnecessary spaces or characters.

  • Preparing strings for comparison or storage by ensuring they have a consistent format.

  • Stripping out unwanted characters from strings for cleaner data presentation and analysis.

3. Which SQL databases support the SQL TRIM() function?

The TRIM() function is supported by most SQL database systems, including:

  • PostgreSQL

  • Oracle

  • MySQL

Each database might have slight variations in how the function is implemented, but the core functionality remains the same.


4. Can SQL TRIM() be used to remove specific characters other than spaces?

Yes, the TRIM() function can be configured to remove any specific character from a string, not just spaces. This flexibility allows for targeted data cleaning based on the requirements of your dataset.

5. How does the SQL TRIM() function improve data handling?

By using TRIM(), we can ensure that data fields are free from extraneous characters, which helps in maintaining data integrity. This is crucial for tasks such as:

  • Data validation and consistency checks.

  • Preparing data for storage in a database.

  • Enhancing the accuracy of data comparisons and queries.

6. How can SQL TRIM() be applied to different parts of a string?

The TRIM() function can be used to:

  • Remove characters only from the beginning of a string.

  • Remove characters only from the end of a string.

  • Remove characters from both the beginning and the end of a string simultaneously.

This allows for precise control over how and where characters are removed from your data strings.

7. Why is the SQL TRIM() function important in SQL queries?

The TRIM() function plays a vital role in SQL queries by:

  • Cleaning up input data, making it ready for processing and storage.

  • Enhancing the readability and formatting of data outputs.

  • Ensuring accurate data comparison and search operations within a database.

8. Can SQL TRIM() be used in conjunction with other SQL functions?

Yes, the TRIM() function can be combined with other SQL functions to create more complex queries and data manipulation operations. This allows for powerful data processing workflows within SQL.

See our Model Database

Here is a new document which is a collection of questions with short and simple answers, useful for learning SQL as well as for interviews.

Check out our 1000+ SQL Exercises with solution and explanation to improve your skills.

Previous: UPPER
Next: TRANSLATE



Follow us on Facebook and Twitter for latest update.