SELECT TO_CHAR(Z,'00000') AS ZZ FROM T
其中字段Z是数值型数据,
所以ZZ的长度为6,
因为有一个符号位
怎样才能取出真正有效的5位字符型数据
简单一点的写法
谢谢!

解决方案 »

  1.   

    TO_CHAR(111,'00000') 理论上应该是'00111',但实际上却是' 00111' 前面多加了个空格,实际上是6位了,如下:可以看出来下面多了个空格:
    SQL> SELECT to_char(111,'00000') FROM dual;TO_CHAR(111,'00000')
    --------------------
     00111下面2种方法都是正确的:SQL> SELECT trim(to_char(111,'00000')) FROM dual;TRIM(TO_CHAR(111,'00000'))
    --------------------------
    00111
    SQL> select lpad(111,5,'0') from dual;LPAD(111,5,'0')
    ---------------
    00111
      

  2.   

    对于正整数,to_char函数把符号位转换成了空格,可以用以上方法处理,对于负数,就只能用to_char函数结合ltrim函数处理了