根据某字段进行排序的时候,如果字段内容为空是怎么排的?


Boot.order("position desc "); 
position 是integer, 默认是null值。
pg数据库这种情况下, position 为nil的会排在前还是在后面?

其实这个问题是来比较 nil 和 数字如1,2,3  中间哪个大的问题。
计算机判断 nil 比 数字大。那么默认 desc排序,就是 nil的item在前面。
这个时候可以根据自己的需求来写SQL语句。

这里可以单独设置nil的放在什么位置:

如果我想从大到小排列, nil的放到最后面。 记住这里是 NULLS, 或者nulls ,是复数形式。
Boot.order("position desc NULLS last"); 
从小到大排列,空的放在最前面。
Boot.order("position asc NULLS first"); 
阅读量: 785
发布于:
修改于: