createbyzzm 2008-08-19 10:02
浏览 198
已采纳

请教各位同仁有关hibernate查询语句中order by中null值的处理,

目前有个DAO方法,采用HQL进行查询,最后order by A desc ,但A有空值,由于,后台数据库是oracle,所以采用desc到话,默认null值最大,查询出来的结果排在了最前面,实际需求需要把空值的结果集放在最后。不知道各位有没有遇到类似的问题,帮忙解决一下!先谢谢了

  • 写回答

1条回答 默认 最新

  • catstiger 2008-08-20 11:03
    关注

    最最土的办法:
    加一个标识列alter table xx add (flags char(1) default '0');
    update xx set flags = '1' where tt is null;
    select * from xx order by flags asc, tt desc;
    这样null的flags都是1,not null的flags都是0,null的就一定在后面了。
    SQL和HQL差不多都是这样了。
    不好的地方是多维护一个字段,save或update的时候需要判断一下。
    不过应该能解决你的问题

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?