2016-04-19 3 views
0

У меня есть запрос, который является объединением еще 3 запросов comples. Некоторые вещи, как показано нижеOracle получить верхнюю строку из объединения запросов

SELECT 'type_one' as typename, typeid, typetitle from abc, def 
UNION 
SELECT 'type_two' as typename, typeid, typetitle from xyz, pqr 
UNION 
SELECT 'type_three' as typename, typeid, typetitle from mno, ijk 
order by date desc 

Этот выше запрос возвращает 15 записей, упорядоченных по дате по убыванию. Я хотел бы получить запись с «type_two» и самой последней датой в качестве первой строки всегда (может быть более одной строки с «type_two»), а затем получить остальные записи, упорядоченные по дате desc. Может ли кто-нибудь указать способ сделать это в Oracle? спасибо

ответ

1

в чехле, чтобы дать различные веса искомых колонок

SELECT 'type_one' as typename, typeid, typetitle from abc, def 
UNION 
SELECT 'type_two' as typename, typeid, typetitle from xyz, pqr 
UNION 
SELECT 'type_three' as typename, typeid, typetitle from mno, ijk 
order by CASE WHEN typename='type_two' THEN 0 ELSE 1 END,date desc 
+0

Это даст результат всех записей с type_two на вершине, а затем ниже остальных. Мне нужна только 1 запись с типом_two в качестве первой записи, а остальное должно быть смешением всех типов, упорядоченных по дате. Надеюсь, это ясно. спасибо – user747291

+0

Любые идеи о том, как я могу это сделать, пожалуйста? – user747291

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