日期:2014-05-18 浏览次数:20501 次
CREATE FUNCTION dbo.trimChar(@char VARCHAR(5),@str VARCHAR(50)) RETURNS VARCHAR(50) AS BEGIN RETURN(SELECT STUFF (REVERSE( STUFF(REVERSE(@str),1, PATINDEX('%[^'+@char+']%',REVERSE(@str))-1,'') ) ,1,PATINDEX('%[^'+@char+']%',@str)-1,'') ); END GO DECLARE @str VARCHAR(20); SET @str='0012agd02002d400'; SELECT dbo.trimChar('0',@str); DROP FUNCTION dbo.trimChar /* -------------------------------------------------- 12agd02002d4 (1 行受影响) */
------解决方案--------------------
对不起,忘了一个参数
用replace函数吧,格式如下:
replace(检索字符串,替换原字符,目标字符)
例:replace('0 haohaoxuexi','0 ','') 结果为'haohaoxuexi'
------解决方案--------------------
--循环判断最后一位是否为 0,是则删除掉,直到不为 0 。 DECLARE @AA NVARCHAR(20),@BB NVARCHAR(20) SET @AA = '45002500' SET @BB = '4501000' DECLARE @i INT,@CC NVARCHAR(20) SET @i = LEN(@AA) SET @CC = @AA --SET @i = LEN(@BB) --SET @CC = @BB WHILE SUBSTRING(@CC,@i,1) = '0' BEGIN SET @CC = SUBSTRING(@CC,1,@i-1) SET @i = @i-1 CONTINUE END PRINT @CC
------解决方案--------------------
replace(@str,'0','')