declare @t table (col varchar(20))insert @t select 
'000000123'
union all select
'000145'
union all select
'01'
union all select
'00000048'
union all select
'0001556'
union all select     --加条不以0开头的
'124'select stuff(col,1,PATINDEX ( '%[^0]%' , col )-1 ,'') as col
from @t--结果
col                                                                                                                                                                                                                                                              
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
123
145
1
48
1556
124(所影响的行数为 6 行)

解决方案 »

  1.   

    select replace(col,'0','') from [Table]
      

  2.   

    如果当中有0,会不会replace?
    我想避免
      

  3.   

    SELECT CONVERT(DECIMAL,COL1) FROM 表
      

  4.   

    如果可以保证你的COL里全都是数字型的字符.也就是只有0~9.可以这样
    SELECT CONVERT(INT,col) from 表名
      

  5.   

    SELECT CONVERT(VARCHAR(20),CONVERT(DECIMAL,COL1)) FROM 表
    --这把字符转成数字再转回字符