Excel 數據導入至Sqlserver 資料庫中 ltrim() 、rtrim() 、replace() 函數 依次空格無效問題

今天導一些數據從Excel中至Sqlserver 資料庫中,在做數據合併去重的時候發現,有兩條數據一模一樣,竟然沒有進行合併;

最後發現有一條後面有個「空格」,正是因為這個「空格」讓我抓狂許久,因為它是個假「空格」!

 

普通的空格移除方法:

SELECT ltrim(' 移除掉左邊的空格 ')
SELECT rtrim(' 移除掉右邊的空格 ')
SELECT rtrim(ltrim(' 移除掉兩邊的空格 '))
SELECT replace(' 移除掉兩邊的空格 ',' ','')

 

假空格移除方法:

分析:有些換行或者回車字元,會被認為是空格,所以,要把換行與回車處理掉;

      對比下ASCII碼錶,把對應的字元替換掉;

SELECT REPLACE(列名,char(9),'') ----將水平製表符替換為『』
SELECT REPLACE(列名,char(10),'')----將換行符替換為『』
SELECT REPLACE(列名,char(13),'')----將回車符替換為『』

 

如果上面的兩種方法還不能解決你的問題,那麼看第三種,我就是這種解決的,只能曲線救國了;

方法:這些看似空格,其實有可能不是,可以複製一下,在Excel裡面進行替換,替換成”。

Tags: