Microsoft SQL Server 2008 R2(SP1) - 10.50.2550.0(X64)
我的客户向我发送了一个Excel电子表格,我已使用数据导入功能将其导入SQL Server。
在数据清理操作期间,我一直在识别重复或接近重复的行,此过程已完成99%。
但是,我完全失败了,因为从查询窗口执行此SQL
SELECT DISTINCT MyTextColumn FROM MyTable WHERE MyCriterion = 'TEST'
返回两个明显相同的记录。
最初我试过
SELECT DISTINCT LEN(MyTextColumn) FROM MyTable WHERE MyCriterion = 'TEST'
但这会返回一个值 - 换句话说,这两个值的长度相同。
我已将MyTextColumn的两个值放入Notepad ++并完成了一个COMPARE,据称“文件是相同的”。我已将这两个值转换为HEX并进行比较 - 再次相同。
注 - 从电子表格获得的值是VarChar(255),目标列是varchar(max)。不是nvarchar,而是varchar。我也在stackoverflow上的其他地方寻找解决方案,但几乎所有其他类似的问题都涉及到JOIN。
我唯一能想到的是,将两个值“获取”到Notepad ++中(通过在查询结果窗口中简单地突出显示它们并复制和粘贴)会以某种方式“遗漏”该列的一些重要组成部分。
有谁知道为什么这可能不起作用?我完全理解MyTable中其他列中的其他值会有所不同,但我的理解是DISTINCT关键字仅在SELECT语句中的列上运行。
非常感谢
爱德华
答案 0 :(得分:0)
感谢Lamak。
SELECT DISTINCT ASCII(SUBSTRING(MyTextColumn, 99, 1))
返回两行 - 一行是10行,另一行是32.非常感谢所有参与者