seqno xxx yyy
1 A 5
2 A 5
3 A 4
4 A 5
5 B 5
6 B 5
7 B 5
8 B 5
我想查表里的数据,并且排序
排序是:先seqno正序,然后yyy里面排倒序并且xxx里面A的倒序
就是yyy里面有个4,我要排倒序,并且要在A值里面排最后
最后查询的效果希望是:
seqno xxx yyy
1 A 5
2 A 5
4 A 5
3 A 4
5 B 5
6 B 5
7 B 5
8 B 5
------解决方案--------------------
这样?
with t1 as
(
select 1 c1,'A' c2,6 c3 from dual union all
select 2 c1,'A' c2,5 c3 from dual union all
select 3 c1,'A' c2,3 c3 from dual union all
select 4 c1,'A' c2,8 c3 from dual union all
select 5 c1,'B' c2,5 c3 from dual union all
select 6 c1,'B' c2,7 c3 from dual union all
select 7 c1,'B' c2,4 c3 from dual union all
select 8 c1,'B' c2,5 c3 from dual
)
select *
from t1
order by c2,c3 desc,c1
c1 c2 c3
-------------------------------
1 4 A 8
2 1 A 6
3 2 A 5
4 3 A 3
5 6 B 7
6 5 B 5
7 8 B 5
8 7 B 4
------解决方案--------------------
听着 需求应该就是这样吧 如果yyy相同 就按seqno排序 如果不同 按yyy排序 ?
上面这么写 针对提问的要求 可以满足