2012-05-06 49 views
19

我有超過400萬行的表,並且在一列中意外地存在比需要更多的數據。從SQL Server數據庫的字段中刪除最後N個字符

例如,而不是ABCABC DEFG

如何使用TSQL刪除N個符號?請注意,我想從數據庫中刪除這些字符,而不僅僅是選擇子字符串。謝謝

回答

44
UPDATE mytable SET column=LEFT(column, LEN(column)-5) 

從列(在mytable的每一行)

+0

當我根據您的答案使用多個更新語句。它適用於第一次更新語句和其他我得到的錯誤:傳遞給LEFT或SUBSTRING函數的長度參數無效。請幫忙 –

11

我得到了答案我自己的問題刪除最後5個字符,螞蟻是這樣的:

select reverse(stuff(reverse('a,b,c,d,'), 1, N, '')) 

其中N是要刪除的字符數。這避免了編寫複雜的列/串兩次

0

你可以使用SUBSTRING做到這一點:

UPDATE表SET列= SUBSTRING(柱,0,LEN(列)+ 1 - N)

中移除了列中每行的最後N個字符

0

這應該做到這一點,從左側刪除字符或刪除多餘的字符。

lEFT(columnX,LEN(columnX) - 1) AS NewColumnName 
相關問題