3

我有一个具有列名称优先级的表,其中包含值:

Urgent, medium, low, high.

我想应用 order by 这样在 order by 值之后的排序如下:

urgent
high 
medium
low

我怎样才能做到这一点

4

3 回答 3

10

您可以为此使用CASE表达式:

ORDER BY CASE Priority 
    WHEN 'urgent' THEN 1
    WHEN 'high' THEN 2
    WHEN 'medium' THEN 3
    WHEN 'low' THEN 4
    END
于 2012-10-31T17:06:10.140 回答
0
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
于 2012-10-31T17:07:01.737 回答
0

您可以执行一种ORDER BY CASE WHEN查询,为每个文本分配一个数值,但我建议使用整数直接指示数据中的优先级。

于 2012-10-31T17:08:54.810 回答