Нужна сортировка с использованием внешнего массива или данных, разделенных запятыми - PullRequest
0 голосов
/ 05 февраля 2019

Я работаю с PostgreSQL 8.0.2, у меня есть таблица

create table rate_date (id serial, rate_name text); 

и ее данные

 id  rate_name
 --------------
 1   startRate
 2   MidRate
 3   xlRate
 4   xxlRate    

После выбора она будет отображать данные с порядком по умолчанию или порядком, примененным клюбой столбец той же таблицы.Мое требование заключается в том, что у меня есть отдельная сущность, из которой я буду получать данные в виде (xlRate, MidRate, startRate, xxlRate), поэтому я хочу использовать эти данные для сортировки выбора в таблице rate_data.Я пытался объединить значения, но он не работает, и никакое другое решение не может сработать.Если у кого-то есть идея, пожалуйста, поделитесь подробностями.

Вывод должен быть

xlRate
MidRate
startRate
xxlRate  

моя попытка / мышление.

select id, rate_name 
from rate_date r
join (
  VALUES (1, 'xlRate'),(2, 'MidRate')
) as x(a,b) on x.b = c.rate_name

1 Ответ

0 голосов
/ 05 февраля 2019

Я не уверен, что это полезно, но в Oracle вы могли бы добиться этого следующим образом:

select *
from
(
select id, rate_name,
case rate_name
    when 'xlRate' then 1
    when 'MidRate' then 2
    when 'startRate' then 3
    when 'xxlRate' then 4
    else 100
end my_order    
from rate_date r
)
order by my_order

Может быть, вы можете сделать что-то подобное в PostgreSQL?

...