i have a query for my next table
x
|id |Name|type |
---------------------
|1 |B |Secondary |
|2 |A |Scholar |
|3 |C |University|
This could be the sql query :
select * from invite order by
case "type"
when 'Scholar' then 1
when 'Secondary' then 2
when 'University' then 3
end asc;
but now i need order by case:
example: when 'Scholar' then 1 desc
its possible do that?
my goal is order by id, and by case type example:
|id |Name|type |
---------------------
|1 |B |Secondary |
|2 |B |Secondary |
|3 |B |Secondary |
|4 |A |Scholar |
|5 |A |Scholar |
|6 |C |University|
|7 |A |Scholar. |
the result will be:
|id |Name|type |
---------------------
|7 |A |Scholar. |
|5 |A |Scholar |
|4 |A |Scholar |
|3 |B |Secondary |
|2 |B |Secondary |
|1 |B |Secondary |
|6 |C |University|
Advertisement
Answer
Your question suggests that want a new direction within each group:
order by (case "type"
when 'Scholar' then 1
when 'Secondary' then 2
when 'University' then 3
end) asc;
(case when "type" = Scholar then id end) desc,
id asc;
However, your example suggests that you just want a second order by
key, id desc
.