我的表格有三个布尔字段:f1、f2、f3.如果我这样做了

SELECT * FROM table ORDER BY f1, f2, f3

记录将按这些字段按false、true和null的顺序排序.我希望在真与假之间用空来排序:正确的顺序应该是真、空、假.

我正在使用PostgreSQL.

推荐答案

不漂亮,但应该有用:

   ... order by (case when f1 then 1 when f1 is null then 2 else 3 end) asc

Postgresql相关问答推荐

带有regex表达式的Postgres SQL

如何在PSQL中查询jsonb列包含字符串的嵌套数组

我需要一个变量来引用上周的星期五

为什么Postgres优化器切换到嵌套循环进行连接?

忽略 split_part 的第 n 个分隔符之后

Postgres 视图定义 (pgAdmin) 被删除了 comments ?

具有有限字母表的自定义字符串类型

gorm 不生成字符串列

如何展平也在关系中使用的区分大小写的列

postgresql查询中的正则表达式不区分大小写

Django 1.8 数组字段追加和扩展

当记录包含 json 或字符串的混合时,如何防止 Postgres 中的invalid input syntax for type json

如何防止materialized 视图在 pg_restore 期间刷新?

为什么 PostgreSQL 数组访问在 C 中比在 PL/pgSQL 中快得多?

Select 中的 PostgreSQL 正则表达式捕获组

SQL Select 一列中具有重复值的所有行

解释结果中的Recheck Cond是什么意思?

在同一台机器上创建多个 Postgres 实例

如何使 array_agg() 像 mySQL 中的 group_concat() 一样工作

IF处或附近的 Postgres 语法错误