请问下Oracle中排序如何指定某些值在最前或最后
比如说某张表中有一年的四个季度,分别是
quarter_id, quarter_name
===================
1 一季度
2 二季度
3 三季度
4 四季度
我现在想要从当前季度开始排序,比如现在9月处在第三季度,那么要排成
3 三季度
4 四季度
1 一季度
2 二季度
到10月的时候,就是第四季度排在最前面,以此类推。
这个应该怎么写呢?
回答:
SELECT quarter_id,quarter_name
FROM (SELECT quarter_id,quarter_name,
(CASE WHEN to_number(TO_CHAR(SYSDATE,'q'))<= quarter_id THEN quarter_id
ELSE NULL END ) flag
FROM t
)
ORDER BY flag,quarter_id;
本人的问题:
显示一张表所有的数据行,且在显示数据的前面,要显示指定的一个ID值(ID为该表的一个字段)所在的数据行。
SQL语句为:
select * from
(
SELECT t.*,
(CASE WHEN id=指定ID值 THEN NULL
ELSE 1 END ) flag
FROM t
)
ORDER BY flag desc;
参考:指定行显示在最前面 oracle 百度