SqlServer删除尾随空格

时间:2017-09-08 10:27:17

标签: sql-server

我这里真的很奇怪。

我在表中有2行,其中运行SELECT查询的同一列中的数据与其中一行中的尾随空格(或可能是另一个空白字符)相同。列声明为varchar(max)。我想将两个值都视为相同(做一个GROUP BY,因为它发生)。

在RTRIM不起作用后,我查看了两者的变量......它们是相同的。但它们不是,我可以看到一个空格,GROUP BY将它们视为单独的值(这是我真正的问题)。

我已经尝试过替换CHAR(13) - 不是那样的。

任何线索?

CODE:

declare @vals table
(
    id int identity primary key,
    textval varchar(max)
)

insert into @vals (textval) values ('07.09.17 Liefertermin weiterhin nicht bekannt (LZ Elmshorn)')
insert into @vals (textval) values ('07.09.17 Liefertermin weiterhin nicht bekannt (LZ Elmshorn)
')

select id, textval + '*' from  @vals
select id, RTRIM(LTRIM(REPLACE(textval,CHAR(13),''))) + '*' from  @vals

select textval from @vals group by textval

1 个答案:

答案 0 :(得分:0)

原来是回车+换行CHAR(13) CHAR(10)

感谢Panagiotis Kanavos将我的星期五大脑(最终)弯曲到了正确的道路上。

我发现了以下有用的https://www.codeproject.com/Tips/330787/LTRIM-RTRIM-doesn-t-always-work