[英]SQL DISTINCT is not removing duplicates
我使用下面的查询删除重复。但它仍然显示重复。你能告诉我为什么?
select DISTINCT a.Company
from [Legacy].[dbo].[Attorney] as a
更新:下面一个也没有用。你能告诉我为什么吗?
select DISTINCT ltrim(rtrim(a.Company)) from [Legacy].[dbo].[Attorney] as a
更新2:现在,它显示3.我不知道为什么?
select DISTINCT ltrim(rtrim(a.Company)),convert(varbinary(100), a.Company) from [Legacy].[dbo].[Attorney] as a
从您最新的屏幕截图中可以看出,区别在于:
n
之后具有“数字”18的行以两个空格结束: 20002000
= 2x 0x0020 n
之后带有“数字”19的行以CR + LF 0D000A00
序列结束: 0D000A00
= 0x000D + 0x000A 所以,三个名字真的是不同的,它只是没有在查询工具显示您行的视觉差异。
要在导入期间修复此问题,您必须从字符串末尾修剪空格,这应该处理这3个不同的字符。 请注意, LTRIM
和RTRIM
仅删除“空白”,文档中进一步说明只考虑空格。 因此,您必须使用不同的修剪功能(如您正在使用的编程语言)来进行修剪。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.