2016-07-11 3 views
0

Ich erstelle einen PDF-Bericht mit einer Anforderung, dass der erzeugte Bericht in der gleichen Reihenfolge wie das Array der übergebenen IDs sortiert wird, ids = [3, 2, 5, 1, 4]Jasperserver PostgreSQL Sortierausgabe

Teil meiner Abfrage finden

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

Irgendwelche Vorschläge

ich habe diese vorherige Frage ORDER BY the IN value list, gefunden haben, aber nicht, um es geschafft

Die zu arbeiten?

+0

Zitat aus der Antwort: „* Vergessen Sie nicht, das' zu erstellen idx 'Funktion zuerst, wie hier beschrieben: http://wiki.postgresql.org/wiki/Array_Index*" –

+0

Was genau ist der Datentyp von 'IDs'? Und was ist deine Postgres-Version? –

+0

Datentypen von ids ist integer Ich habe vergessen, die IDX-Funktion zu erstellen, auch nachdem er noch die Erstellung funktioniert nicht :( Das Folgende ist die JapserServer Protokolldatei Ausgabe eines Teils der Abfrage, die es läuft WHERE o.id IN (?,?,?,?,?,?,?,?,?,?,?) ORDER BY idx (IDs, o.id) – Carlos

Antwort

0

Dank

Ändern der Abfrage a_horse_with_no_name nach unten das Problem gelöst,

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

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

zu create the idx function benötigt auch