我在排序查詢結果時遇到問題。Postgresql:排序列以匹配自定義條件
SELECT id_doc_header, id_clasificacion_doc
FROM cabecera_documento INNER JOIN tipo_doc USING (id_tipo_doc)
INNER JOIN clasificacion_documento USING (id_clasificacion_doc)
WHERE finalizado = 'f' AND cod_exp = '10-APC-2013' AND id_clasificacion_doc in(2,3,4,5)
ORDER BY case when Id_clasificacion_doc = 5 THEN 5 when Id_clasificacion_doc = 3 THEN 3
when Id_clasificacion_doc = 2 THEN 2 when Id_clasificacion_doc = 4 THEN 4 END;
或本:
SELECT id_doc_header, id_clasificacion_doc
FROM cabecera_documento INNER JOIN tipo_doc USING (id_tipo_doc)
INNER JOIN clasificacion_documento USING (id_clasificacion_doc)
WHERE finalizado = 'f' AND cod_exp = '10-APC-2013'
AND id_clasificacion_doc in(2,3,4,5)
ORDER BY id_clasificacion_doc = 5, id_clasificacion_doc = 3, id_clasificacion_doc = 2, id_clasificacion_doc = 4;
結果我得到的是:
id_doc_header | id_clasificacion_doc
---------------+----------------------
1657 | 2
1658 | 3
1658 | 2
1661 | 4
1663 | 4
1665 | 5
我的問題是:我能做些什麼讓
執行這個查詢後下一個命令的結果?
id_doc_header | id_clasificacion_doc
---------------+----------------------
1665 | 5
1658 | 3
1657 | 2
1661 | 4
1663 | 4
我使用的是posgresql 9.1。
在此先感謝。
以某種方式存儲在數據庫中的優先級列表? (您的問題意味着它存儲爲單列表格,但這是不可能的,因爲表格沒有排序。) – ruakh
是的,它存儲在我的數據庫的表格中,而不是,沒有排序。 – EmCo
然後,你實際上沒有優先級*列表*,你有一個無序的優先級*集*:如果一個值出現在表中,那麼這意味着「是的,這個值有一個優先級,你不希望有什麼方法可以找出它的優先性?「 – ruakh