nhibernate - 在结尾处排序null

时间:2008-10-05 10:02:02

标签: nhibernate

使用来自C#的NHibernate,只使用与MS SQL Server 2005/2008(最好是Oracle)兼容的HQL(而不是SQL)。

有没有办法编写order by子句,以便nulls将在查询结果的末尾排序,而非null结果将按升序排序?

根据nickf引用的问题的答案,答案是:

select x from MyClass x order by case when x.MyProperty is null then 1 else 0 end, x.MyProperty

2 个答案:

答案 0 :(得分:0)

我不知道这是否有帮助,但有another question asking the same thing about how to do this with MySQL

也许同样的逻辑可以应用于HQL?


编辑:这被接受了,显然是的,是的。

以下是该问题的答案(Bill Karwin):

SELECT * FROM myTable
WHERE ...
ORDER BY CASE WHEN myDate IS NULL THEN 1 ELSE 0 END, myDate;

答案 1 :(得分:0)

有一次,我放弃并修复了我的集合类中的排序顺序。

由于我只是移动NULL,所以我所要做的就是在集合开头剥离空值并将它们追加到最后。

打赌切割器编码,甚至可以在阵列上完成。

然而,ORDER BY CASE是一个切割器和可读技巧。