在SQL Server 2008中删除字符串中的所有空格的最佳方法是什么?

LTRIM(RTRIM(' a b '))将删除字符串右侧和左侧的所有空格,但我还需要删除中间的空格。


当前回答

如果正规空格没有被LTRM或RTRM删除,请尝试这样使用

LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(Column_data, CHAR(9), ''), CHAR(10), ''), CHAR(13), '')))

其他回答

T-sql replace http://msdn.microsoft.com/en-us/library/ms186862.aspx

代表(val, ', ', ')

我会使用REPLACE

select REPLACE (' Hello , How Are You ?', ' ', '' )

取代

如果是对表的更新,则必须多次运行此更新,直到影响到0行为止。

update tableName
set colName = REPLACE(LTRIM(RTRIM(colName)), '  ', ' ')
where colName like '%  %'

这对我来说很有用:

CREATE FUNCTION dbo.TRIM(@String VARCHAR(MAX))
RETURNS VARCHAR(MAX)
BEGIN
    RETURN LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@String,CHAR(10),'[]'),CHAR(13),'[]'),char(9),'[]'),CHAR(32),'[]'),'][',''),'[]',CHAR(32))));
END
GO

.

replace(replace(column_Name,CHAR(13),''),CHAR(10),'')