2016-07-11 60 views
0

我正在創建一個PDF報告,其中要求生成的報告按照與傳入的ID數組相同的順序進行排序,ids = [3,2,5,1,4]Jasperserver PostgreSQL排序輸出

我發現這先前的問題ORDER BY the IN value list,但沒有設法得到它的工作

以下是我的查詢

WHERE 
    $X{IN, o.id, ids} 
ORDER BY idx(ids, o.id) 

任何建議的一部分?

+0

報價從答案:「*不要忘記創建' idx'函數,如下所述:http://wiki.postgresql.org/wiki/Array_Index*「 –

+0

」ids「的數據類型究竟是什麼?你的Postgres版本是什麼? IDS的 –

+0

數據類型是整數 我忘了創建IDX功能,甚至創造它仍然無法正常工作:( 後下面是查詢的一部分的JasperServer日誌文件輸出,它運行 WHERE o.id IN(?,?,?,?,?,?,?,?,?,?,?) ORDER BY idx(ids,o.id) – Carlos

回答

0

由於a_horse_with_no_name

更改查詢按下面解決問題,

ids = "3, 2, 5, 1, 4" 

WHERE 
    o.id in (ids) 
ORDER BY idx(array[ids], o.id) 

還需要create the idx function