我有一张关于oracle 11g的表,看起来像这样
col_1 | col_2 | col_3 |
1 | 111222001 | A
2 | 111222001 | B
3 | 111222002 | A
4 | 111222002 | B
5 | 111555001 | B
6 | 111555003 | A
7 | 111555003 | B
我想订购它,以获得此
col_1 | col_2 | col_3 |
2 | 111222001 | B
4 | 111222002 | B
1 | 111222001 | A
3 | 111222002 | A
5 | 111555001 | B
7 | 111555003 | B
6 | 111555003 | A
背后的逻辑:
注意col_2值是三个三元组111-222-333的值。
我想根据第三个三元组111-222-“333”来命令col_2,并且只获得首先具有col_3 ='B'的条目,然后获得具有col_3 ='A'的条目。 当第二个三元组(改变/上升)111-“222”-333时,我们重做之前描述的内容。
在此先感谢,我确实有办法做到这一点,但如果有人能找到一种方法可以做到这一点,那真的很难看
答案 0 :(得分:0)
Select *
from table
order by col_3 desc, col2, col1;
答案 1 :(得分:0)
我不知道为什么我没有看到它,但这很简单,抱歉让你烦恼
从table_name中选择col_1,col_2,col_3 按substr(col_2,3,8),col_3,substr(col_2,9,11);
排序