字段名:name
字段值:TB100000
字段值:DB1000现在想实现这样一个效果T开头的值,把后面5个0去掉
D开头的值,把后台2个零去掉然后字段显示的时候需要在首字母后面加一个杠‘-’也就是说最后应该显示成这样
name
T-B1
D-B10请教前辈们,该怎么写呢?

解决方案 »

  1.   

    什么数据库?
    用case语句可以的,以oracle为例,其他数据库请参考相关的函数
    select (case when substr(name,1,1)='T' then 'T-'|substr(name,2,length(name)-5-2)
                when substr(name,1,1)='D' then 'D-'|substr(name,2,length(name)-2-2)
           end) as name
      from you_table
      

  2.   

    select [name]=case
    when [name] like 'T%' then 'T-B'+left(right([name],6),1)
    when [name] like 'D%' then 'D-B'+left(right([name],4),2)
    else '如上继续写'
    end
     from l;
      

  3.   

    如果那个后面还加0,比如说6个0,你这个SQL语句还要改还不如截取前面几个固定。。
      

  4.   

    你没看清LZ的需求,如果说要改,是你的要改,后面多加个0,去掉后面5个0,结果就会多个0,而你只是left(,1),少了一个0,所以你的就要改了
    所以说具体问题具体分析