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

后端 未结 3 1619
深忆病人
深忆病人 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条回答
  •  慢半拍i
    慢半拍i (楼主)
    2021-02-13 12:06

    Wrap it in a derived table (which is what "HINT: .... or move the UNION into a FROM clause" is suggesting)

    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;
    

提交回复
热议问题