How to have a custom sort order for a union query in Postgres

后端 未结 3 1629
深忆病人
深忆病人 2021-02-13 11:50

With a query like this (simplified for clarity):

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


        
3条回答
  •  眼角桃花
    2021-02-13 12:05

    I'd add an extra column showing the desired ordering, then use ordinal column positions in the ORDER BY, e.g.

    SELECT 1, 'East' AS name, *
    ...
    UNION ALL
    SELECT 2, 'West' AS name, *
    ...
    ORDER BY 1
    

    Note that you probably also want UNION ALL since your added columns ensure that every set in the union must be distinct anyway.

提交回复
热议问题