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

请教各位同仁有关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的时候需要判断一下。
    不过应该能解决你的问题

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

报告相同问题?

悬赏问题

  • ¥15 用C语言输入方程怎么
  • ¥15 网站显示不安全连接问题
  • ¥15 github训练的模型参数无法下载
  • ¥15 51单片机显示器问题
  • ¥20 关于#qt#的问题:Qt代码的移植问题
  • ¥50 求图像处理的matlab方案
  • ¥50 winform中使用edge的Kiosk模式
  • ¥15 关于#python#的问题:功能监听网页
  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题