日期:2014-05-18  浏览次数:20782 次

hql语句问题《排序》
hql语句如下这个是动态表,现在想查询动态状态等于4,并且按指定字段(trenOrder)顺序排序,然后排序的规则是trenOrder要不等于0,等于0的放最后面。
from Trends t where t.checkStatus=4 ORDER BY t.trenOrder

------解决方案--------------------
trenOrder要不等于0,等于0的放最后面.

没说清。是不是按升序,但是0的放最后?这样的可以用union。前面查询去掉0的,后面一个专门是0的。

from t where trenOrder != 0 order by trenOrder union from t where trenOrder = 0 ;
------解决方案--------------------
其实可以分为两步查询,如下:
第一步查询条件是:动态状态等于4,并且按指定字段(trenOrder)顺序排序,然后排序的规则是trenOrder要不等于0;
第二部查询条件是:trenOrder等于0。
然后把两次查询的结果集合并即可。