如何在2017年之前修剪 SQLServer 中的字符串?

在 SQLServer2017中,可以使用此语法,但在早期版本中不能使用:

SELECT Name = TRIM(Name) FROM dbo.Customer;
357154 次浏览
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_namefirst_name等等:)

在 sql server 2008 r2中,我们使用 ssis 表达式实现了装饰函数。

SQL Server IntegrationServices (SSIS)是 Microsoft SQL Server 数据库软件的一个组件,可用于执行广泛的数据迁移任务。

您可以在这个链接上找到完整的描述

Http://msdn.microsoft.com/en-us/library/ms139947.aspx

但是这个函数本身有一些限制,这也是 msdn 在该页面中提到的。 但这是在 Sql 服务器2008 r2

TRIM("   New York   ") .The return result is "New York".
SELECT LTRIM(RTRIM(Replace(Replace(Replace(name,'   ',' '),CHAR(13), ' '),char(10), ' ')))
from author

“替换”的扩展版本:

REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(RTRIM(LTRIM(REPLACE("Put in your Field name", ' ',' '))),'''',''), CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(160), '') [CorrValue]

要修剪字符串开头和结尾的任何字符集,可以执行以下代码,其中@TrimPattern 定义要修剪的字符。在这个例子中,空格、制表符、 LF 和 CR 字符被修剪:

Declare@TEST nvarchar (50) = Concat (’’,char (9) ,char (13) ,char (10) ,’’,‘ TEST’,’,char (9) ,char (10) ,char (13) ,’’,‘ TEST’,’,’,char (9) ,char (13) ,’)

DECLARE@TrimPattern nvarchar (max) =’% [ ^’+ char (9) + char (13) + char (10) +’]%’

SELECT SUBSTRING (@Test,PATINDEX (@TrimPattern,@Test) ,LEN (@Test)-PATINDEX (@TrimPattern,@Test)-PATINDEX (@TrimPattern,LTRIM (REVERSE (@Test))) + 2)

从客户处选择替换(名称,’,”)