如何在PostgreSQL中对整数和文本的组合进行排序?

时间:2017-01-11 09:48:01

标签: sql postgresql

我有这张桌子

id  value 
1   OK
2   xminimum
3   NO
4   YES

我希望按value对此表进行排序,其中minimum始终优先,其余按照value列的字母顺序排列

含义:

xminimum
NO
OK
YES

我写了这个查询:

Select *
from table_a
order by case when value='xminimum' then 1 else ????? end

我不知道在其他地方放什么......概念上它应该是else value end所以它意味着字母顺序..但我不能将整数与文本结合起来。

我该如何解决?

3 个答案:

答案 0 :(得分:4)

根据要求,从我的评论中复制:

Select *
from table_a
order by case when value='xminimum' then 1 else 2 end, value

答案 1 :(得分:2)

另一种解决方案:

SELECT *
FROM table_a
ORDER BY value <> 'xminimum', value;

答案 2 :(得分:1)

按照您的要求进行操作,并将value列添加为第二列,以便按以下方式排序:

SELECT *
FROM table_a
ORDER BY CASE WHEN value='xminimum' THEN 1 ELSE 2 END, value