如何在Postgres中为联合查询设置自定义排序顺序

戴夫

使用这样的查询(为清楚起见,已简化):

SELECT 'East' AS name, *
FROM events 
WHERE event_timestamp BETWEEN '2015-06-14 06:15:00' AND '2015-06-21 06:15:00' 

UNION

SELECT 'West' AS name, *
FROM events 
WHERE event_timestamp BETWEEN '2015-06-14 06:15:00' AND '2015-06-21 06:15:00'

UNION

SELECT 'Both' AS name, *
FROM events 
WHERE event_timestamp BETWEEN '2015-06-14 06:15:00' AND '2015-06-21 06:15:00'

我想自定义结果行的顺序。就像是:

ORDER BY name='East', name='West', name='Both'

要么

ORDER BY 
    CASE
        WHEN name='East' THEN 1 
        WHEN name='West' THEN 2
        WHEN name='Both' THEN 3
        ELSE 4
    END;

但是,Postgres抱怨:

ERROR:  invalid UNION/INTERSECT/EXCEPT ORDER BY clause
DETAIL:  Only result column names can be used, not expressions or functions.
HINT:  Add the expression/function to every SELECT, or move the UNION into a FROM clause.

我有其他选择吗?

a_horse_with_no_name

将其包装在派生表中(这是“提示:...。或将UNION移入FROM子句”的建议)

select *
from (
  ... your union goes here ... 
) t
order by
    CASE
        WHEN name='East' THEN 1 
        WHEN name='West' THEN 2
        WHEN name='Both' THEN 3
        ELSE 4
    END;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在SQL查询中添加自定义排序顺序?

如何在JUnit5中为测试套件设置自定义测试执行顺序?

在Wordpress中,如何将自定义帖子类型的默认管理排序顺序设置为自定义列?

如何在Windows 7和10上为文件夹设置自定义顺序?

如何在Java数组中按字母顺序对自定义对象进行排序?

如何在CakePHP 3.x中编写自定义查询以从联合表中检索数据

如何在MySQL中定义自定义ORDER BY顺序

Python中的自定义排序顺序

CTE 中的自定义排序顺序

如何在Spring Boot中对mongo db存储库进行自定义排序查询?

您如何在Vaadin 8中设置网格以按自定义比较器排序?

如何在Postgres中按自定义日期格式查询?

如何在 Laravel 中为自定义注册表单设置自定义自动登录

如何在Flutter中的GridView中为窗口小部件设置自定义高度?

如何在MySQL查询中定义自定义ORDER BY

使用自定义顺序对 Django 查询集进行排序

如何在Android Studio中为单元测试设置自定义可绘制目录

如何在jenkinsfile中为docker.build设置自定义上下文

如何在package.json中为自定义本地npm模块设置VScode intellisense?

如何在我的 React 网站中为登录页面设置自定义声明

如何在RecyclerView中为TextView设置自定义字体?

如何在JSF中为标准验证器设置自定义消息?

如何在Android中为整个应用程序设置自定义字体?

如何在Visio 2013中为快捷方式设置自己的自定义键?

如何在Eclipse中为Android设置自定义密钥库以进行调试

如何在Laravel 5.5中为选定的Request类设置自定义响应

如何在mybatis generator中为mapper文件和接口设置自定义名称、后缀?

如何在 mac osx 中为文件类型设置自定义图标

如何在flutter中为浮动操作按钮设置自定义位置?