我有一个具有列名称优先级的表,其中包含值:
Urgent, medium, low, high.
我想应用 order by 这样在 order by 值之后的排序如下:
urgent
high
medium
low
我怎样才能做到这一点
您可以为此使用CASE
表达式:
ORDER BY CASE Priority
WHEN 'urgent' THEN 1
WHEN 'high' THEN 2
WHEN 'medium' THEN 3
WHEN 'low' THEN 4
END
select * from your_table
order by case when priority = 'urgent' then 1
when priority = 'high' then 2
when priority = 'medium' then 3
when priority = 'low' then 4
end
您可以执行一种ORDER BY
CASE WHEN
查询,为每个文本分配一个数值,但我建议使用整数直接指示数据中的优先级。