重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
个人知道的可以用lpad来补0(左边,如果是右侧补0,那么是rpad函数),如果想要保存的时候就有0,那么保存的时候需要是字符型的,不能是数字的,因为oracle默认数字前面是没有0的,小数除外。
成都创新互联于2013年成立,是专业互联网技术服务公司,拥有项目网站设计、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元江城做网站,已为上家服务,为江城各地企业和个人服务,联系电话:13518219792
先不说你空值用0表示的问题
就是opdate=sysdate估计你也很难得到结果,sysdate表示系统当前时间,包含时分秒,你那个opdate怎么可能会和sysdate相等呢?
真的要是把空值用0表示的话,oracle中有nvl函数
select nvl(workbillid,0) from kf_workbill
意思就是把workbillid字段为空的显示成0,当然也可以显示成任何字符或者数字
友情提醒一下:
你那个opdate=sysdate是不是该改成
to_char(opdate,'yyyymmdd')=to_char(sysdate,'yyyymmdd')
有补位的,但是没有专门补0的,你想怎么补0?
如果是19改为19.00那么好像数据库内部直接就可以这样保存,我记得可以设置精确到多少位,怎么设置我忘了,不过应该是可以设置的。
类似这种我只会一个操作字符串的,不是操作数字的,是lpad(左补位)和rpad(右补位)
举例:
假设原来是字段内容为aa,
语句为select lpad(字段,5,'-') from table ,那么显示的内容为---aa。
如果是rpad那么则是aa---。5就是字符串总共的长度,'-'是你要添加的字符。
补空查询和补零查询是两个不同概念。
补空查询是将空格替换成特定字符,可用replace函数。
如test表中有如下数据:
现在要将str字段内的空格替换成s,可用如下语句:
select replace(str,' ','s') from test;
结果:
补零查询分为两类,一类是左补0,一类是右补0。左补0用lpad,右补零用rpad。
test表中数据如下:
现在要求将str字段左补0,将其长度保持在10位。可用以下语句:
select lpad(str,10,'0') from test;
结果:
现在要将str字段右补0,将其长度保持在10位。可用以下语句:
select rpad(str,10,'0') from test;
结果: