Sql 如何在Oracle数据库中按枚举排序

Sql 如何在Oracle数据库中按枚举排序,sql,database,oracle,enums,sql-order-by,Sql,Database,Oracle,Enums,Sql Order By,我想按字符串列排序,其中该列是枚举。例如: +----+--------+----------------------+ | ID | NAME | STATUS | +----+--------+----------------------+ | 1 | Serdar | ACTIVE | | 2 | John | DEACTIVE | | 3 | Jerry | WAITING_FOR_APPRO

我想按字符串列排序,其中该列是枚举。例如:

+----+--------+----------------------+
| ID |  NAME  |        STATUS        |
+----+--------+----------------------+
|  1 | Serdar | ACTIVE               |
|  2 | John   | DEACTIVE             |
|  3 | Jerry  | WAITING_FOR_APPROVAL |
|  4 | Jessie | REJECTED             |
+----+--------+----------------------+
我想按
状态下单。它应该对结果进行排序,以便第一个结果的状态必须为等待批准,然后为活动,然后为非活动,然后为拒绝


在SQL中有什么方法可以做到这一点吗?java中有类似Comparator的东西吗?

您可以枚举
CASE
语句中的值,并按其顺序排列

SELECT id, name, status
  FROM your_table
 ORDER BY (CASE status 
                WHEN 'WAITING_FOR_APPROVAL' THEN 1
                WHEN 'ACTIVE' THEN 2
                WHEN 'DEACTIVE' THEN 3
                WHEN 'REJECTED' THEN 4
                ELSE 5
            END)

您可以枚举
CASE
语句中的值,并按该值排序

SELECT id, name, status
  FROM your_table
 ORDER BY (CASE status 
                WHEN 'WAITING_FOR_APPROVAL' THEN 1
                WHEN 'ACTIVE' THEN 2
                WHEN 'DEACTIVE' THEN 3
                WHEN 'REJECTED' THEN 4
                ELSE 5
            END)

哦,这看起来很完美,我明天会试试:)我能用Hibernate标准实现吗?哦,这看起来很完美,我明天会试试:)我能用Hibernate标准实现吗?