select * from test_tab no
---------
123
12
1
123
23要怎么写个语句实现如下格式
no
---------
123
012
001
123
023
不足3位的用零补足??????????????

解决方案 »

  1.   

    我想到的最简便的方法:
    select t.no,
    case length(t.no) when 1 then 0||0||t.no
                      when 2 then 0||t.no
                      else ''||t.no end as newno
    from test_tab t
      

  2.   

    no -> no1select decode(sign(length(tt.no1) - 3), -1, lpad(tt.no1, 3, '0'), tt.no1) as no1
      from test_tab tt;
      

  3.   

    Select lpad(no,3,'0') from test_tab假如原来是char型的。就加上trim(),
    看LZ写出来的,应该不是char类型了。
      

  4.   

    学习:如果no 有4位的话lpad不是把最后一位抹掉了?
    有没有显示结果是:三位的和不足三位的用0补充到三位,三位以上的正常显示。
      

  5.   

    select lpad(tt.no, 3,'0'),tt.no from test_table tt