postgresql 将具有给定值的行排序在所有其他行之前

t9aqgxwy  于 2024-01-07  发布在  PostgreSQL
关注(0)|答案(1)|浏览(158)

我找到了一个与SQL Server here相关的答案。
在我的例子中,我有一个表列comment。我如何将'我的评论'移动到顶部,然后按id排序?

other comment          my comment
other comment          my comment
other comment          my comment
my comment       =>    other comment
other comment          other comment
my comment             other comment
my comment             other comment

字符串

zsbz8rwp

zsbz8rwp1#

假设你的目标是:

  • “将'我的评论'排序在其他评论之前,然后按id排序“*
SELECT *
FROM   comments
ORDER  BY comment <> 'my comment', id;

字符串
因为booleanfalse(think 0)在true(think 1)之前排序。
或者你的目标是:

  • “将'我的评论'排序在其他评论之前,然后按顺序排序评论,然后按id排序“*
SELECT *
FROM   comments
ORDER  BY comment <> 'my comment', comment, id;


fiddle
查看(更多链接):

  • PostgreSQL:按列排序,具有特定的NON-NULL值LAST

注意,这需要正确处理boolean类型,就像Postgres实现的那样。SQL Server(你的链接)不能正确处理布尔值,所以这在那里不起作用。

相关问题