Java HQL使用两列中最大的一列对记录进行排序
对于数据库中的每一行,我有两列,比如Java HQL使用两列中最大的一列对记录进行排序,java,hibernate,hql,Java,Hibernate,Hql,对于数据库中的每一行,我有两列,比如id和A。有时A可以是null。我想按其id和A值中的最大值对所有记录进行排序,但如果A为null,则将忽略它,并改为按id对列进行排序 我使用Hibernate和数据库作为MySQL。到目前为止,我的HQL是 select i from Item as i order by GREATEST(id, a) 除了A=null的记录外,它工作正常。对于这些值,它们出现在返回结果的末尾(应该使用它们的id作为键对它们进行排序) 如何编写这样的HQL语句?有人用C
id
和A
。有时A
可以是null
。我想按其id
和A
值中的最大值对所有记录进行排序,但如果A
为null
,则将忽略它,并改为按id
对列进行排序
我使用Hibernate和数据库作为MySQL。到目前为止,我的HQL是
select i from Item as i order by GREATEST(id, a)
除了A=null
的记录外,它工作正常。对于这些值,它们出现在返回结果的末尾(应该使用它们的id
作为键对它们进行排序)
如何编写这样的HQL语句?有人用
Case解决了它。..When..End
,效果非常好
select i from Item as i order by CASE WHEN a = null THEN id ELSE GREATEST(id, a) END DESC