我正在尝试对十进制或整数列进行排序。但排序升序零排在最后。
代码是:
criteria.AddOrder(Order.Asc(Projections.Cast(NHibernateUtil.Decimal, Projections.Property("cloumn1")))));
输出:
35342860
36870852
87654321
213123213
0
0
代码中有任何问题吗?或者什么是解决方案?
答案 0 :(得分:0)
这些很可能是空值。您可以查看使用条件限制或将其设置为默认值为0的非可空列,这似乎就是您所追求的。
条件限制将是这样的
.AddOrder
(
Order.Asc
(
Projections.Conditional
(
Restrictions.IsNull("cloumn1"),
Projections.Constant(1),
Projections.Constant(0)
)
)
)
如果你输入第一个排序将把空值放在顶部并显示为0