ORACLE中对空值的比较是怎么一回事
本帖最后由 zzhywhp 于 2013-06-21 14:28:16 编辑
有一个表table,有4个字段a,b,c,d,值如下:
a b c d
------------------
1 2 3 1
1 2 3 2
1 2 3 空
sql语句:select a,b,c,max(d) from table group by a,b,c
结果居然是:
1 2 3 2
1 2 3 空
max()聚合函数,结果难道不应该是一条数据吗?
后来改为:select a,b,c,max(d) from (select a,b,c,nvl(d,0) from table) group by a,b,c
结果变成了
1 2 3 2
1 2 3 0
大家帮忙看看是咋回事啊
------解决方案-------------------- 把你的表结构和数据 导出来看看。。。
------解决方案-------------------- 你的那列是date没试过,如果是数字或者字符串是不会出现空那行的
------解决方案-------------------- 除了数据问题,别无其他原因。
tbbh=2013042910001868 是不是有 一条的后面出现了空格???
------解决方案-------------------- 引用: 除了数据问题,别无其他原因。
tbbh=2013042910001868 是不是有 一条的后面出现了空格???
明显是的
"tjb.sql"(11531,49):values ('2013052310016166', 'td_lrkhdj_latjb', '2013042910001868 ', '0', null, null, null, '3', 'FALSE', null);
"tjb.sql"(15127,49):values ('2013042910023399', 'td_lrkhdj_latjb', '2013042910001868', '4', '张会中', to_date('21-06-2013 12:21:31', 'dd-mm-yyyy hh24:mi:ss'), null, '3', 'FALSE', null);
"tjb.sql"(16767,49):values ('2013042910022411', 'td_lrkhdj_latjb', '2013042910001868', '2', '张会中', to_date('21-06-2013 11:48:28', 'dd-mm-yyyy hh24:mi:ss'), null, '3', 'FALSE', null);
"tjb.sql"(19299,49):values ('2013042910023577', 'td_lrkhdj_latjb', '2013042910001868', '6', '张会中', to_date('21-06-2013 12:23:49', 'dd-mm-yyyy hh24:mi:ss'), null, '3', 'FALSE', null);
4 个项目被找到.