在 SQL Server 2017 中,您可以使用此语法,但在早期版本中不能使用:
SELECT Name = TRIM(Name) FROM dbo.Customer;
SELECT LTRIM(RTRIM(Names)) AS Names FROM Customer
要在右侧修剪,请使用:
SELECT RTRIM(Names) FROM Customer
要在左侧修剪,请使用:
SELECT LTRIM(Names) FROM Customer
要修剪两侧,请使用:
SELECT LTRIM(RTRIM(Names)) FROM Customer
我认为这是一次一次性的数据清理练习。完成后,确保添加数据库约束以防止将来出现错误数据,例如
ALTER TABLE Customer ADD
CONSTRAINT customer_names__whitespace
CHECK (
Names NOT LIKE ' %'
AND Names NOT LIKE '% '
AND Names NOT LIKE '% %'
);
还要考虑禁止其他可能导致问题的字符(制表符、回车符、换行符等)。
这可能也是将这些名称拆分为
family_name
、first_name
等的好时机:)
SELECT LTRIM(RTRIM(Replace(Replace(Replace(name,' ',' '),CHAR(13), ' '),char(10), ' ')))
from author
“REPLACE”的扩展版本:
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(RTRIM(LTRIM(REPLACE("Put in your Field name", ' ',' '))),'''',''), CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(160), '') [CorrValue]
在带有 ssis 表达式的 sql server 2008 r2 中,我们有修剪功能。
SQL Server Integration Services (SSIS) 是 Microsoft SQL Server 数据库软件的一个组件,可用于执行广泛的数据迁移任务。
您可以在此链接上找到完整的说明
http://msdn.microsoft.com/en-us/library/ms139947.aspx
但是这个功能本身有一些限制,msdn 在该页面上也提到了这些限制。 但这是在 sql server 2008 r2
TRIM(" New York ") .The return result is "New York".
要从字符串的开头和结尾修剪任何字符集,可以执行以下代码,其中 @TrimPattern 定义要修剪的字符。在此示例中,空格、制表符、LF 和 CR 字符被修剪:
声明 @Test nvarchar(50) = Concat (' ', char(9), char(13), char(10), ' ', 'TEST', ' ', char(9), char(10), char (13),' ', '测试', ' ', char(9), ' ', char(9), char(13), ' ')
声明 @TrimPattern nvarchar(max) = '%[^ ' + char(9) + char(13) + char(10) +']%'
选择子字符串(@Test,PATINDEX(@TrimPattern,@Test),LEN(@Test) - PATINDEX(@TrimPattern,@Test) - PATINDEX(@TrimPattern,LTRIM(REVERSE(@Test)))+ 2)
或者在旧版本中没有 TRIM() 的情况下,您可以使用 LTRIM(RTRIM(somestring)) 来达到所需的结果。
从客户中选择替换(名称,'','')