(Using Postgres). Image we have only one table, let's call it tableA. Then we make two queries over that table and we use Union to join the result.
Something like:
query1_over_tableA
union
query2_over_tableA
so we get a result like:
result1_of_query1_over_tableA
result2_of_query1_over_tableA
Is there a way of swapping the results to have:
result2_of_query1_over_tableA
result1_of_query1_over_tableA
without inverting the order of the queries, in other words, doing something like
query2_over_tableA
union
query1_over_tableA
To clarify what I have so far:
(
select node.id, battery, battery_warn_level, battery_alert_level, battery_status
from
public.node
join public.network on node.network_id = network.id
where
network.site_id = 'SOME_NETWORK_ID'
and device_type = 3
order by
node_public_id asc
)
union all
(
select node.id, battery, battery_warn_level, battery_alert_level, battery_status
from
public.node
join public.network on node.network_id = network.id
where
network.site_id = 'SOME_NETWORK_ID'
and device_type = 1
order by
case
when (node.battery_status ->> 'level'::text) = 'alert'::text then 0
when (node.battery_status ->> 'level'::text) = 'warn'::text then 1
else 2
end desc,
node.battery asc
)