有如下表
A1,A2
B D
E D
A C
F C
C A
D A排序的结果为
A C
F C
B D
E D
C A
D A
即,A2列要按照块来排列。块的排列顺序为A1的值。我写的这个比较简单,A1值是经过很复杂的方法得到的,很难计算出来块内的A1最大值。
A1,A2
B D
E D
A C
F C
C A
D A排序的结果为
A C
F C
B D
E D
C A
D A
即,A2列要按照块来排列。块的排列顺序为A1的值。我写的这个比较简单,A1值是经过很复杂的方法得到的,很难计算出来块内的A1最大值。
select a1,a2
from tb
order by a2 ,a1
(
select 'B' as a1, 'D' as a2 from dual union
select 'E' as a1, 'D' as a2 from dual union
select 'A' as a1, 'C' as a2 from dual union
select 'F' as a1, 'C' as a2 from dual union
select 'C' as a1, 'A' as a2 from dual union
select 'D' as a1, 'A' as a2 from dual
)SELECT A1,A2 FROM TEST
ORDER BY MIN(A1) OVER(PARTITION BY A2),A1A1 A2
A C
F C
B D
E D
C A
D A
主要是 MIN(A1) OVER(PARTITION BY A2) 要能取到最小值