2011-10-18 43 views
17

我有一個表(MS)的SQL數據庫,它有一個Id列(identity,int)和一個Name列(varchar(250))。 但是,名稱列中的值包含(相當隨機的)前導和尾隨空格,因爲我認爲它們是從「其他」剪切和粘貼的(不知道是什麼!)。是否可以在單個語句中修改列中的所有值?

是否有可能在T-SQL執行以下操作:

update MyTable set Name = trim(name) 

,並將它更新所有與修剪值的名稱列?

回答

52

MS SQL不具有微調功能。你需要一起使用rTrim和lTrim。

update MyTable set Name = lTrim(rTrim(name)) 
+0

感謝@Bazza ,難怪我找不到修剪! – BlueChippy

9

嘗試

update MyTable set Name = LTRIM(RTRIM((name)) 
2

在SQL Server中,只有RTRIMLTRIM,但你們可以一起使用這兩個:

update MyTable set Name = RTRIM(LTRIM((name)) 
3

你可以試試這個:

UPDATE MyTable 
SET Name = LTRIM(RTRIM(Name)) 

看看here創建一個函數在你的數據庫裏用來更快地使用它

+0

感謝@Bazza答案首先出現,但感謝您的額外信息。 – BlueChippy

+0

@BlueChippy:不客氣! :) – Marco

0

不太 - 沒有TRIM()功能,所以你必須使用RTRIM()LTRIM()(左手和內飾,分別對應)

UPDATE MyTable set Name = rtrim(ltrim(name)) 
1

試試這個:

UPDATE [table] SET [column1] = REPLACE([column1],'i:0#.w|',' ')

相關問題