我有一个如下的表
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)