Oracle(SQL):如何获取SQL查询语法

时间:2018-11-25 14:09:58

标签: sql oracle

enter image description here

一个表(例如:A)具有三列id, name, amountAmount具有一些+ ve,-ve和零值。如何编写查询以获取结果的方式,使得结果先给出+ ve然后是-ve然后为零?样品表的PFA。

预先感谢

2 个答案:

答案 0 :(得分:0)

您只是在寻找带有order by表达式的case吗?

select a.*
from a
order by (case when a.amount > 0 then 1
               when a.amount < 0 then 2
               else 3
          end),
         a.amount desc;

答案 1 :(得分:0)

如果您要3个组接一个:

SELECT *
FROM tablename
ORDER BY 
    (CASE 
        WHEN amount > 0 then 1
        WHEN amount < 0 then 2
        ELSE 3
    END),
    Id;