oracle10g,有没有不足位数补0的函数?

qizaodeniao 2010-08-20 04:35:00
就是在创建表的时候,我想有一列是number型的,5个长度
如果往这列插入一个1的话,这列的值自动变成00001

就相当于mysql中的zerofill
...全文
1225 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuguanlin 2010-08-27
  • 打赏
  • 举报
回复
select substr('00000'||'1',-5,5) from dual;
loveliy520 2010-08-27
  • 打赏
  • 举报
回复
使用lpad函数可以完成不足位补值的问题
关于这些东西你可以在csdn的下载点去下载oracle小册子帮助手册,里面涵盖了大部分常用函数的使用方法
胖虎gogogo 2010-08-23
  • 打赏
  • 举报
回复
小数点前无数据,补零;小数点后保存两位小数,不足两位补零,超过一位的四舍五入

CREATE OR REPLACE FUNCTION GET_SHOW_ZERO_SECOND(VAL VARCHAR) RETURN VARCHAR IS
RESULT VARCHAR(50);
BEGIN
SELECT decode(Instr(VAL,'.'),0,TO_CHAR(VAL,'FM999999990.90'),to_char(VAL,'FM999999990.90')) INTO RESULT FROM DUAL;
RETURN RESULT;
END;
zhone 2010-08-20
  • 打赏
  • 举报
回复
学习。
duqiangcise 2010-08-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ngx20080110 的回复:]
select lpad('1', 5, '0') from dual;

LPAD('1',5,'0')
---------------
00001
[/Quote]
SCOTT@oamis>>select rpad('1',8,'0') from dual;

RPAD('1'
--------
10000000

已用时间: 00: 00: 00.00
genehuanbo 2010-08-20
  • 打赏
  • 举报
回复
学习了~谢谢!
  • 打赏
  • 举报
回复
SQL> select lpad(sal,5,0),sal from emp;
--lpad(sal,5,0)是sal显示是为5位不够往左边补0 如果是右边就用rpad()
LPAD(SAL,5 SAL
---------- ----------
00800 800
01600 1600
01250 1250
02975 2975
01250 1250
02850 2850
02450 2450
03000 3000
05000 5000
01500 1500
01100 1100

LPAD(SAL,5 SAL
---------- ----------
00950 950
03000 3000
01300 1300
SQL> column sal heading "newsal" format 09999;--设置列的格式输出
SQL> select sal from emp;

newsal
------
00800
01600
01250
02975
01250
02850
02450
03000
05000
01500
01100

newsal
------
00950
03000
01300

ngx20080110 2010-08-20
  • 打赏
  • 举报
回复
select lpad('1', 5, '0') from dual;

LPAD('1',5,'0')
---------------
00001

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧