Как сортировать в PostgreSQL согласно списку конструкции WHERE

Если необходимо осуществить поиск по нескольким ID, например (4, 6, 3, 12). Видно, что список имеет неупорядоченную сортировку, и вывод результата в PostgreSQL необходимо построить согласно этому списку.
Что-то вроде того:

SELECT *
FROM "table"
WHERE id IN (4, 6, 3, 12)
ORDER BY (4, 6, 3, 12)

Т. е. чтобы конечный результат сохранил сортировку id

В данном случае нам поможет следующая конструкция:

SELECT *
FROM "table"
JOIN unnest('{4, 6, 3, 12}'::int[]) WITH ORDINALITY t(id, sort) USING (id)
ORDER  BY t.sort;
Поделиться
Отправить
10 сентября   order by   PostgreSQL   WITH ORDINALITY
Популярное