存在這樣一些數據
,,,,dga bc,,aaaa,,,,
,,,,dga bc,,aaaa,,,
,,,,dga bc,,aaaa,,,
,,,,dga bc,,aaaa,,,,,,
需要將最后多余的逗號去掉
當數據中本來不存在空格的情況下,可以使用下面的方式簡單的去掉
SELECT REPLACE(RTRIM(REPLACE('aa,bb,cc,,,',',',' ')),' ',',')
思路是把所有逗號換成空格 然后去掉最后的所有空格 再把空格換回來
這樣做有個缺陷,就是當正常數據中間本身存在空格時,替換后會將空格變成逗號
新的方法采用sql function的方式實現
創建函數:
CREATE FUNCTION getstr(@oldstr nvarchar(512)) returns nvarchar(512) AS BEGIN declare @revOldStr nvarchar(512) set @revOldStr=reverse(@oldstr) while (charindex(',',@revOldStr,1)=1) begin set @revOldStr=substring(@revOldStr,2,len(@revOldStr)-1) end return reverse(@revOldStr) END GO
調用函數:
update [tableName] set [columnName]=dbo.getstr([columnName])
這樣就不存在上一個方法,將本來正確的空格替換為逗號的情況了。