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标准实现吗?