的Microsoft SQL Server 2008 R2(SP1) - 10.50.2550.0(X64)SELECT DISTINCT返回副本 - 无表连接
我的客户给我发了,我一直在使用的数据导入到SQL Server中的Excel电子表格导入功能。
在数据清理操作过程中,我一直在识别重复或接近重复的行,并且此过程已完成99%。
不过,我来完全脱胶,因为执行该从SQL查询窗口
SELECT DISTINCT MyTextColumn FROM MyTable WHERE MyCriterion = 'TEST'
回报两个明显相同的记录。
最初我试图
SELECT DISTINCT LEN(MyTextColumn) FROM MyTable WHERE MyCriterion = 'TEST'
但该返回一个值 - 换句话说,这两个值分别为相同的长度。
我已经把MyTextColumn的两个值放到了Notepad ++中,并做了一个比较,并且据说“文件是相同的”。我已将这两个值转换为HEX,并将它们进行比较 - 再次相同。
注 - 从电子表格获得的值是VarChar(255),目标列是varchar(max)。不是nvarchar,而是varchar。我还在其他地方寻找了解决方案,但几乎所有其他此类问题都涉及JOIN。
我能想到的唯一的事情是,将这两个值“记入”Notepad ++(通过在查询结果窗口中简单地突出显示它们并复制和粘贴)是以某种方式“丢失”了该列的一些重要组成部分。
有没有人有任何想法,为什么这可能不工作?我完全理解MyTable中其他列中的其他值会有所不同,但我的理解是,DISTINCT关键字仅对SELECT语句中的列进行操作。
非常感谢
爱德华
LEN不修剪它计算字符串的长度了。从[文档](http://technet.microsoft.com/en-us/library/ms190329.aspx)*返回指定字符串表达式的字符数,不包括尾随空格。* –
是的,当您尝试'选择DISTINCT LTRIM(RTRIM(MyTextColumn))...'? –
打我吧,@YuriyGalanter ...必须围绕空白。 –