SQL 字符串函数如何去掉空格?

答案:使用TRIM函数去除首尾空格,LTRIM和RTRIM分别去除左侧和右侧空格,REPLACE函数可删除所有空格;不同数据库支持略有差异,如SQL Server需嵌套LTRIM和RTRIM实现TRIM功能。

在 SQL 中,去掉字符串中的空格主要依赖几个内置的字符串函数,具体使用哪个取决于你想去除空格的位置:开头、结尾、中间,还是全部。

1. 去除字符串首尾空格(常用)

使用 TRIM() 函数可以同时去除字符串开头和结尾的空格。

语法: TRIM(string)

示例:

SELECT TRIM(' Hello World ') AS result;

结果:'Hello World'(前后空格被移除)

如果你只想去除开头或结尾的空格,也可以使用:

  • LTRIM(string):只去除左侧(开头)空格
  • RTRIM(string):只去除右侧(结尾)空格

示例:

SELECT LTRIM(' Hello') AS left_trimmed; -- 结果:'Hello'
SELECT RTRIM('Hello ') AS right_trimmed; -- 结果:'Hello'

2. 去除字符串中所有空格(包括中间的)

如果要去掉字符串中所有的空格(包括单词之间的),需要使用 REPLACE() 函数。

语法: REPLACE(string, ' ', '')

示例:

SELECT REPLACE('Hello World From SQL', ' ', '') AS no_spaces;

结果:'HelloWorldFromSQL'(所有空格都被删除)

3. 注意事项

不同数据库对函数名称支持略有差异:
  • MySQL / PostgreSQL / SQLite:支持 TRIM、LTRIM、RTRIM、REPLACE
  • SQL Server:不支持标准 TRIM,但支持 LTRIM 和 RTRIM。如需双向去除,可嵌套使用:RTRIM(LTRIM(string))
  • Oracle:支持 TRIM、LTRIM、RTRIM,用法类似

例如在 SQL Server 中写法:

SELECT RTRIM(LTRIM(' Hello World ')) AS cleaned;

基本上就这些方法,根据你的数据库类型和需求选择合适的方式即可。