一个表(例如:A
)具有三列id, name, amount
。 Amount
具有一些+ ve,-ve和零值。如何编写查询以获取结果的方式,使得结果先给出+ ve然后是-ve然后为零?样品表的PFA。
预先感谢
答案 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;