我试图通过两个参数来命令我的表,一个是'status',其中我有一个完美的CASE订单,第二列是'ID',我只想按照他们的表ID来排序案例的结果为了在排序的情况下将最新结果放在最上面。
这是我当前的疑问:
SELECT ID, status
FROM omv_tabelle
ORDER BY CASE
WHEN status = 'ANMELDUNG' THEN '1'
WHEN status = 'KUNDE' THEN '2'
WHEN status = 'OMV_ANTRAG' THEN '3'
WHEN status = 'ABLEHNUNG' THEN '4' END ASC,
ID DESC
我不知道如何在不破坏案例功能的情况下将ID添加到排序中
我目前的输出如下:
407 KEIN_INTERESSE
406 KEIN_INTERESSE
405 KEIN_INTERESSE
397 KEIN_INTERESSE
396 KEIN_INTERESSE
411 ANMELDUNG
1 ANMELDUNG
6 KUNDE
5 KUNDE
4 KUNDE
3 KUNDE
2 KUNDE
394 ABLEHNUNG
393 ABLEHNUNG
392 ABLEHNUNG
391 ABLEHNUNG
390 ABLEHNUNG
所以状态的排序是错误的:/
应该是:
411 ANMELDUNG
1 ANMELDUNG
6 KUNDE
5 KUNDE
4 KUNDE
3 KUNDE
2 KUNDE
394 ABLEHNUNG
393 ABLEHNUNG
392 ABLEHNUNG
391 ABLEHNUNG
390 ABLEHNUNG
407 KEIN_INTERESSE
406 KEIN_INTERESSE
405 KEIN_INTERESSE
397 KEIN_INTERESSE
396 KEIN_INTERESSE
答案 0 :(得分:5)
在ID desc
之后按case statement
排序。我不理解您的akhtungs
,但这取决于您的示例输出:
SELECT *
FROM omv_tabelle
ORDER BY CASE
WHEN status = 'open' THEN 1
WHEN status = 'pending' THEN 2
WHEN status = 'closed' THEN 3 END,
ID DESC
编辑:
SELECT ID, status
FROM omv_tabelle
ORDER BY CASE
WHEN status = 'ANMELDUNG' THEN 1
WHEN status = 'KUNDE' THEN 2
WHEN status = 'OMV_ANTRAG' THEN 3
WHEN status = 'ABLEHNUNG' THEN 4
ELSE 5 END ASC,
status,
ID desc