如果这是一个简单的问题,很抱歉。但是,我已经搜索了大约一个小时的高低答案。

我有一个db_table,我需要对其进行排序以输出到网页中的表。数据通过以下方式存储在db_table中:

   date          Area         Value
   ------        ------      -------
 11-mar-18        middle        10
 11-mar-18        bottom         5
 11-mar-18        top           12

 12-mar-18        top           14
 12-mar-18        bottom         4
 12-mar-18        middle        17


问题是:如何对它们进行排序以产生以下结果:

    date          Area         Value
   ------        ------      -------
 11-mar-18        top           12
 11-mar-18        middle        10
 11-mar-18        bottom         5

 12-mar-18        top           14
 12-mar-18        middle        17
 12-mar-18        bottom         4


任何帮助是极大的赞赏。

最佳答案

select *
  from db_table
 order by "date",
    case
       when area = 'top' then 1
       when area = 'middle' then 2
       when area = 'bottom' then 3
       else 4
    end;


请参阅Custom Sort Order

10-05 18:01