Sql 如何按案例和订单进行排序?
我要查询下一张桌子Sql 如何按案例和订单进行排序?,sql,postgresql,sql-order-by,Sql,Postgresql,Sql Order By,我要查询下一张桌子 |id |Name|type | --------------------- |1 |B |Secondary | |2 |A |Scholar | |3 |C |University| 这可能是sql查询: select * from invite order by case "type" when 'Scholar' then 1 when
|id |Name|type |
---------------------
|1 |B |Secondary |
|2 |A |Scholar |
|3 |C |University|
这可能是sql查询:
select * from invite order by
case "type"
when 'Scholar' then 1
when 'Secondary' then 2
when 'University' then 3
end asc;
但现在我需要按案例排序:
示例:当'Scholar'时,则为1 desc
有可能吗
我的目标是按id和按案例类型排序,例如:
|id |Name|type |
---------------------
|1 |B |Secondary |
|2 |B |Secondary |
|3 |B |Secondary |
|4 |A |Scholar |
|5 |A |Scholar |
|6 |C |University|
|7 |A |Scholar. |
结果将是:
|id |Name|type |
---------------------
|7 |A |Scholar. |
|5 |A |Scholar |
|4 |A |Scholar |
|3 |B |Secondary |
|2 |B |Secondary |
|1 |B |Secondary |
|6 |C |University|
我想你想要:
order by
case "type"
when 'Scholar' then 1
when 'Secondary' then 2
when 'University' then 3
end,
id desc
也可以使用数组而不是条件逻辑:
order by
array_position(array['Scholar', 'Secondary', 'University'], "type"),
id desc
我想你想要:
order by
case "type"
when 'Scholar' then 1
when 'Secondary' then 2
when 'University' then 3
end,
id desc
也可以使用数组而不是条件逻辑:
order by
array_position(array['Scholar', 'Secondary', 'University'], "type"),
id desc
您的问题表明,您希望在每个小组中都有一个新的方向:
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;
但是,您的示例表明,您只需要第二个
order by
键,id desc
您的问题表明您希望在每个组中都有一个新的方向:
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;
但是,您的示例表明,您只需要第二个
orderby
键,id desc
请提供一个示例,通过显示所需结果来说明您的意思。“1”是一个常数。它是上升还是下降都没有区别。我不认为“学者”与其他群体有什么不同。请举例说明你想要的结果是什么意思。“1”是一个常数。它是上升还是下降都没有区别。我看不出“学者”与其他组有什么不同。这应该适用于所有情况:(case when status=SENT然后id end)desc,@jdode。然后您只需要将id desc
作为第二个order by
键。如何通过其他参数进行排序?按id和name@jdode . . . 您可以添加其他键。我不知道你想在哪里订购。在这一部分中,在这一部分中,当“大学”时,则3)asc和名称;这应该适用于所有情况:(状态=发送时的情况,然后id结束)desc、@jode。然后您只需要将id desc
作为第二个order by
键。如何通过其他参数进行排序?按id和name@jdode . . . 您可以添加其他键。我不知道你想在哪里订购。在这一部分中,在这一部分中,当“大学”时,则3)asc和名称;