2011-05-12 18 views
2

我正在嘗試從主鍵列中的數據中刪除多餘的字符......此列中的數據充當控制編號,並且額外字符阻止了Web應用程序有效與數據交互。使用T-SQL刪除列中的無關字符

舉個例子,一個行可能看起來像這樣:

ocm03204415 820302 

我想刪除空格之後一切......這樣的人物「820302」。我可以手動執行此操作,但是,大約有2,000條記錄在列中具有這些額外的值。如果我可以通過編程方式刪除它,那將是非常棒的。我不能做一個簡單的替換,因爲角色沒有模式......我無法定義一條規則來發現它們......統一唯一的空間......儘管現在我看了數據集,他們都從8開始。

有沒有一種方法可以通過編程方式刪除這些字符?我熟悉Oracle環境中的PL/SQL,並想知道Transactional SQL是否會在MS-SQL環境中提供一些可能性?

非常感謝。

回答

4

您可能想要查看CHARINDEX函數來查找空間。然後,您可以使用SUBSTRING來獲取單個UPDATE聲明中的所有空間。

3

試試這個:

UPDATE YourTable 
SET YourColumn = LEFT(YourColumn,CHARINDEX(' ',YourColumn)-1) 
WHERE CHARINDEX(' ',YourColumn) > 1 
+0

注:如果這是跑了,有些行沒有空格在此列,它會返回一個錯誤(第二個參數到左將是-1,不允許)。 – 2011-05-12 20:33:55

+0

@Joshua Carmody - 你說得對,更新了我的答案。 – Lamak 2011-05-12 21:10:50