Oracle 中,根据状态字段进行自定义排序例(待验证、待维修、重新维修)

按照指定的顺序(待验证、待维修、重新维修、待派单、待接单、驳回、已完成)进行排序,可以修改ORDER BY子句中的CASE语句。以下是修改后的查询:

SELECT
  a.nid,
   CASE a.REPAIR_PROGRESS
       WHEN 1 THEN '待验证'
       WHEN 2 THEN '待维修'
       WHEN 3 THEN '重新维修'
       WHEN 20 THEN '待派单'
       WHEN 21 THEN '待接单'
       WHEN 4 THEN '驳回'
       WHEN 5 THEN '已完成'
   END AS REPAIR_PROGRESS_Name
FROM
  NC_EQU_MAINTAIN a
WHERE
  a.IS_DELETE = 0
ORDER BY
   CASE a.REPAIR_PROGRESS
       WHEN 3 THEN 1  -- 待验证
       WHEN 2 THEN 2  -- 待维修
       WHEN 6 THEN 3  -- 重新维修
       WHEN 20 THEN 4 -- 待派单
       WHEN 21 THEN 5 -- 待接单
       WHEN 4 THEN 6  -- 驳回
       WHEN 5 THEN 7  -- 已完成
       ELSE 8         -- 其他状态
   END;

请注意这里的CASE语句中,各个状态的对应顺序已经调整为你要求的顺序。确认所有状态代码正确对应。

posted @ 2024-09-19 18:52  不知名路人!  阅读(42)  评论(0)    收藏  举报