如何从一个字符串取一个从右往左第一个不为0的子串

解决方案 »

  1.   


    REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' )
      

  2.   

    SELECT SUBSTRING(REVERSE(str),CHARINDEX('0',REVERSE(str))+1,1);
      

  3.   

    DECLARE @str VARCHAR(20)SET @str = 'liangck0adf'SELECT SUBSTRING(REVERSE(@str),CHARINDEX('0',REVERSE(@str))+1,1);
      

  4.   

    select right(col,charindex(col,'0')-1) from tb
      

  5.   

    declare @str varchar(100),@end int,@result varchar(50)
    set @str = 'asdf123470abc1234045523ass'
    set @str = REVERSE(@str)
    set @end= charindex('0',@str)
    set @result= substring(@str,0,@end)
    set @result = REVERSE(@result)select @result
    /**
                                                       
    -------------------------------------------------- 
    45523ass(所影响的行数为 1 行)
    **/测试ok
      

  6.   

    select right(col,charindex('0',reverse(col))-1) from tb