如何修改postgresql的select顺序



我有一个如下的表

A
--
a
b
c
d
e
f 

当我得到如下数据

select A from table

返回如下

A
--
a
b
c
d
e
f

但是我想要的结果如下。first:c,second:d,然后对剩余元素排序。

A
--
c
d
a
e
f

有没有办法改变我想要的顺序?

我们将使用的技巧是按两个字段排序。我们将排序的第一个字段将是一个条件字段——明确地告诉postgres将c放在第一位,d放在第二位。在那之后,我们将按常规列排序。

SELECT *
FROM mytable 
ORDER BY 
CASE mycolumn WHEN 'c' THEN 0 WHEN 'd' THEN 1 ELSE 2 END, 
mycolumn;
mycolumn
----------
c
d
a
b
e
f
(6 rows)

最新更新