摘要:在本教程中,我们将介绍 SQL TRIM 函数,该函数用于从字符串中删除前导和尾随字符。
SQL TRIM 函数简介
TRIM
函数允许你修剪字符串的前导字符和/或尾随字符。以下显示了 TRIM
函数的语法。
TRIM([LEADING | TRAILING | BOTH] trim_character FROM source_string);
Code language: SQL (Structured Query Language) (sql)
首先,指定 trim_character
,它是 TRIM
函数将要删除的字符。如果你没有指定 trim_character
,TRIM
函数将从源字符串中删除空白。
其次,放置 source_string
,然后是 FROM
从句。
第三,LEADING
、TRAILING
和 BOTH
指定 source_string
的哪一侧 TRIM
函数将删除 trim_character
。
- 如果你指定
LEADING
,TRIM
函数将移除与 trim_character 匹配的任何前导字符。 - 如果你指定
TRAILING
,TRIM
函数将移除与 trim_character 匹配的任何尾随字符。 - 如果你指定
BOTH
或三个都不指定,TRIM
函数将移除与trim_characters
匹配的前导和尾随字符。
如果 trim_character
或源字符串为 NULL
,TRIM 函数将返回 NULL
。
SQL TRIM 示例
假设我们有一个字符串,该字符串在字符串的开始处包含两个空格并且在字符串的末尾包含一个空格 ( ' SQL '
)。字符串 的长度为六。
SELECT LENGTH(' SQL ');
Code language: SQL (Structured Query Language) (sql)
length
--------
6
(1 row)
Code language: SQL (Structured Query Language) (sql)
以下语句使用带 LEADING
选项的 TRIM
函数来移除字符串的所有前导空格。
SELECT TRIM(LEADING FROM ' SQL ');
trim
-------
SQL
(1 row)
Code language: SQL (Structured Query Language) (sql)
你可以使用 LENGTH 函数来测试它。结果字符串的长度必须为四,因为 TRIM
函数会移除字符串开始处的两个空格。
SELECT LENGTH(TRIM(LEADING FROM ' SQL '));
LENGTH
--------
4
(1 row)
Code language: SQL (Structured Query Language) (sql)
以下语句使用带 TRAILING
选项的 TRIM
函数来移除字符串的所有尾随空格。
SELECT TRIM(TRAILING FROM ' SQL ');
trim
-------
SQL
(1 row)
Code language: SQL (Structured Query Language) (sql)
字符串的长度必须为五,因为 TRIM
函数会移除字符串末尾的一个空格。
SELECT LENGTH(TRIM(TRAILING FROM ' SQL '));
length
--------
5
(1 row)
Code language: SQL (Structured Query Language) (sql)
以下语句移除字符串的前导和尾随空格。
SELECT TRIM(' SQL ');
trim
-------
SQL
(1 row)
Code language: SQL (Structured Query Language) (sql)
当然,结果字符串的长度必须为三。
SELECT LENGTH(TRIM(' SQL '));
length
--------
3
(1 row)
Code language: SQL (Structured Query Language) (sql)
以下语句移除字符串的前导零,因为 trim_character 为‘0’。
SELECT TRIM(LEADING '0' FROM '00001900');
Code language: SQL (Structured Query Language) (sql)
trim
-------
1900
(1 row)
Code language: SQL (Structured Query Language) (sql)
以下语句移除字符串的前导和尾随 @
。
SELECT TRIM('@' FROM '@2000@');
Code language: SQL (Structured Query Language) (sql)
trim
-------
2000
(1 row)
Code language: SQL (Structured Query Language) (sql)
有时候,当用户提交包含输入字段(例如,名、姓、电子邮件、电话等)的表单时,数据可能包含前导空格和/或尾随空格。在插入或更新数据库之前,你需要验证并移除空格。如果你不这么做,那么不干净的数据会造成使用 WHERE
从句不正确匹配。
如果你需要清理数据,你可以使用带 TRIM
函数的 UPDATE
语句来移除数据库中的所有不需要的字符,尤其是空格。
例如,以下报表将删除employees
表中的first_name
、last_name
、email
和phone_number
列中所有前导和尾随空格。

UPDATE employees
SET
first_name = TRIM(first_name),
last_name = TRIM(last_name),
email = TRIM(email),
phone_number = TRIM(phone_number);
Code language: SQL (Structured Query Language) (sql)
在本教程中,您学习了如何使用SQLTRIM
函数从字符串中删除不需要的字符。