【发布时间】:2015-05-19 22:21:42
【问题描述】:
这是对上一个问题的扩展,Order by depending on 2 col values. 我有一个查询返回如下输出,
SELECT DISTINCT a.rev_date ,fruitname,
fruit_id , primary_fruit_id
FROM fruits a, fruit_lookup s,fruit_reference r
WHERE a.id = s.id(+)
and primary_fruit_id = r.fruit_id(+)
AND (fruit_id = 24 or fruit_id = 0)
ORDER BY case when fruit_id = primary_fruit_id then 0 else 1 end,
fruit_id desc,
a.rev_date desc
如何处理这个问题,以便我以以下方式获得所需的输出。因此,无论何时fruit_id 为 0,这些行都需要位于结果集中的第 2 行和第 5 行,例如 10 行。如果总计结果在 50 左右,则每页将有 10 个结果,在第 2 和第 5 位置我需要得到如下输出。希望这是有道理的。任何想法表示赞赏。谢谢
NAME FRUIT_ID PRIMARY_FRUIT_ID
--------------------------------------
apple 24 24
apple 24 24
apple 24 24
apple 24 24
orange 24 12
pear 24 7
kiwi 24 6
melon 24 2
grape 0 90
banana 0 45
carrot 0 30
Desired output
NAME FRUIT_ID PRIMARY_FRUIT_ID
--------------------------------------
apple 24 24
grape 0 90
apple 24 24
apple 24 24
banana 0 45
apple 24 24
kiwi 24 6
orange 24 12
melon 24 2
pear 24 7
carrot 0 30
【问题讨论】: