oracle decode与聚合函数连用bug
Posted dreamfather
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle decode与聚合函数连用bug相关的知识,希望对你有一定的参考价值。
在写sql过程中竟然发现了一个oracle中decode和聚合函数连用的bug.
来说一下:
先建一张临时的测试表
create table test (id number,value varchar2(10));
insert into test values(1,0);
insert into test values(2,50);
insert into test values(3,100);
insert into test values(4,200);
select a.*,a.rowid from test a;
查询结果如下:
在这里求value列的最大值,毋庸置疑的是200,
求value列的最小值,一定是0.
但是:
select max(decode(value,0,null,value)) from test;
用这条sql查询出的最大值确是50.
select min(decode(value,0,null,value)) from test;
用这条sql查询出来的最小值确是100.
估计就是oracle的bug.
似乎是只在固定几个值时发生这种情况,0、50、100、NULL,decode与max、min连用。
以上是关于oracle decode与聚合函数连用bug的主要内容,如果未能解决你的问题,请参考以下文章