的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 ...必須圍繞空白。 –