SQLPLUS问题:一个字符型字段,不足8位时前补0

kylie 2003-07-02 08:32:42
SQLPLUS问题:

一个字符型字段,由'0'~'9' 组成,长度<=8,当长度<8 时将其补足8位,

前补'0' 。如何在一条SQL语句中解决这个问题?
...全文
793 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kylie 2003-07-04
  • 打赏
  • 举报
回复
向各位提议用lpad函数的老大道歉:
我没有说清楚account字段是char(40),它虽然只使用了8位但后面是补空格的。
所以lpad要和rtrim搭配使用才行:
lpad(rtrim(account), 8, '0')

再次感谢!
kylie 2003-07-02
  • 打赏
  • 举报
回复
bzszp(SongZip) 的办法可行!

Michaelyfj(星星还是那颗星星)和jlandzpa(jlandzpa)的可能是varchar类型才可以
jlandzpa 2003-07-02
  • 打赏
  • 举报
回复
select substr('00000000'||field,-8) from table;
shahand 2003-07-02
  • 打赏
  • 举报
回复
真tmd涨经验
bzszp 2003-07-02
  • 打赏
  • 举报
回复
另一种方法:
08:40:48 SQL> select to_char('12345','00000000') from dual;

TO_CHAR('
---------
00012345

实际:180
08:41:00 SQL> select to_char('123','00000000') from dual;

TO_CHAR('
---------
00000123

实际:60
08:41:10 SQL>
hrb_qiuyb 2003-07-02
  • 打赏
  • 举报
回复
如上所说
Michaelyfj 2003-07-02
  • 打赏
  • 举报
回复
可以使用 lpad

如:select lpad(field, 8, '0') from table
其中field即字段,8指共8位长度, ‘0’是要填充的字符
Michaelyfj 2003-07-02
  • 打赏
  • 举报
回复
一个很好的总结

17,377

社区成员

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

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