2008-10-07 22 views

回答

167
SELECT LTRIM(RTRIM(Names)) AS Names FROM Customer 
+3

這是做到這一點的最簡單的方法,只記得別名返回你的專欄 – Miles 2008-10-08 15:10:37

+1

@Miles - 我加了別名完整性。 – 2008-10-08 15:29:43

+2

據我所知,這是使用修剪值的正確方法。 但你能解釋爲什麼我們可以使用TRIM而不是使用LTRIM和RTRIM? – 2015-04-15 07:35:12

53

修剪右側,使用:

SELECT RTRIM(Names) FROM Customer 

到左側修剪,使用:

SELECT LTRIM(Names) FROM Customer 

待修剪的兩邊,使用:

SELECT LTRIM(RTRIM(Names)) FROM Customer 
6

我認爲這是一次性的數據清理練習。完成後,請確保您添加數據庫約束以防止未來的錯誤數據

ALTER TABLE Customer ADD 
    CONSTRAINT customer_names__whitespace 
     CHECK (
      Names NOT LIKE ' %' 
      AND Names NOT LIKE '% ' 
      AND Names NOT LIKE '% %' 
      ); 

還可以考慮禁止可能導致問題的其他字符(製表符,回車符,換行符等)。

這也可能是拆分那些名的好時機到family_namefirst_name等:)

0

在SQL Server 2008 R2 SSIS的表達我們有微調功能。

SQL Server Integration Services(SSIS)是Microsoft SQL Server數據庫軟件的一個組件,可用於執行各種數據遷移任務。

你可以找到這個鏈接

http://msdn.microsoft.com/en-us/library/ms139947.aspx

的完整描述,但該功能本身就具有一定的侷限性,其也在該網頁上提到的MSDN。 但這是SQL Server 2008 R2中

TRIM(" New York ") .The return result is "New York". 
3
SELECT LTRIM(RTRIM(Replace(Replace(Replace(name,' ',' '),CHAR(13), ' '),char(10), ' '))) 
from author