PostgreSQL查询时如何优先返回满足指定条件的行数据
实现方案
你可以直接在ORDER BY子句中使用条件判断实现需求,不需要枚举所有type取值,完全适配type可能有数千种的约束:
全量查询(优先返回fruit类型)
SELECT * FROM public.items ORDER BY (type = 'fruit') DESC;
查询前5行(匹配你给出的示例结果)
SELECT * FROM public.items ORDER BY (type = 'fruit') DESC LIMIT 5;
原理解释
PostgreSQL中布尔值的排序规则为TRUE大于FALSE,因此type = 'fruit'判断为真的行都会排在其他行的前面,其余非fruit类型的行排序规则不受干预,完全符合你的要求。
内容的提问来源于stack exchange,提问作者yonder
相关产品推荐
相关产品推荐

