SQL TRIM:如何从字符串中删除不需要的字符

 摘要:在本教程中,我们将介绍 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_characterTRIM 函数将从源字符串中删除空白。

其次,放置 source_string,然后是 FROM 从句。

第三,LEADINGTRAILINGBOTH 指定 source_string 的哪一侧 TRIM 函数将删除 trim_character

  • 如果你指定 LEADINGTRIM 函数将移除与 trim_character 匹配的任何前导字符。
  • 如果你指定 TRAILINGTRIM 函数将移除与 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_namelast_nameemailphone_number列中所有前导和尾随空格。

employees_table
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函数从字符串中删除不需要的字符。

本教程是否有用?