Oracle 补空查询/补零查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 补空查询/补零查询相关的知识,希望对你有一定的参考价值。

假设查询1月1号至1月10号的数据,但是数据库里,没有5号和7号数据,但是我希望查询出来后,5号和7号也显示出来,但数据为零就行了,各位大神知道该怎么查询吗。

补空查询和补零查询是两个不同概念。

补空查询是将空格替换成特定字符,可用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;

结果:

参考技术A 按日期做中间表 假设为 temp1,然后和前张表左连接查询 select * from temp2,temp1 where temp2.日期(+) = temp1.日期 参考技术B 按日期建个中间表吧,对应缺省值为0,查询结果做UPDATE。 参考技术C 楼上说的对,提供你一个插入日期的函数方法
定义两个变量 start_dt,end_dt
while start_dt<=end_dt LOOP
v_sql := 'insert into t_date(static_date) values ('''||start_dt||''')';
execute v_sql;
start_dt := start_dt+1;
END LOOP;

后面就查询了
select * from 表,t_date d where 表.日期=d.static_date(+)本回答被提问者和网友采纳

以上是关于Oracle 补空查询/补零查询的主要内容,如果未能解决你的问题,请参考以下文章

Postgresql合并年月日月份和日期左侧补零

mysql自动补零语句

mysql zerofill 不补零是怎么回事儿?高手帮看一下!!!

oracle中查询结果中有小数点

补零补零

SQL 查询每个月统计的数据。