2016-07-11 4 views
0

Я создаю отчет в формате PDF с требованием, чтобы сгенерированный отчет сортировался в том же порядке, в котором прошел массив идентификаторов, 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? –

+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

Смежные вопросы