日期:2014-05-17  浏览次数:20937 次

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
大家帮忙看看是咋回事啊
Oracle SQL max() 空值

------解决方案--------------------
把你的表结构和数据 导出来看看。。。
------解决方案--------------------
你的那列是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 个项目被找到.