我在Postgresql中有以下排序:
ORDER BY verified_at NULLS FIRST, name ASC
我想要的是首先让所有记录的字段都带有authenticated_at NULLS,但是仅当字段verify_at不为null时,然后才按名称排序。我不希望authenticated_at在名称上具有优先级,如果authenticated_at不为NULL。
使用此代码,在显示NULL之后,authenticated_at在名称上具有优先级。实际上,是否可以使记录按名称排序,但那些具有verify_at NULL的记录除外?
我想要的例子:
verified_at: name:
NULL Alex
NULL Bernard
NULL Toto
2018 Albert
2012 Boris
2015 Michel
2001 Lena
您可以添加第一个排序标准来检查数据是否为空,然后按名称排序:
order by (verified_at is not null)::int, name
实际上直接使用布尔值也应该起作用:
order by verified_at is not null, name
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句