我的一个表 t1 :
字段: id(varchar型) ord(number型)
记录: 01 1
02 3
0201 3
0202 2
0203 1
03 4
04 2
等等,想得到以下结果顺序:
id ord
01 1
04 2
02 3
0201 3
0202 2
0203 1
03 4
规则是:首先按照id字段的长短排序(同样长短的按ord),如果id字段有子字段记录比如02下有0201、0202、0203,则子字段必须紧接着父字段段记录。
不知道我表达清楚了没有?
字段: id(varchar型) ord(number型)
记录: 01 1
02 3
0201 3
0202 2
0203 1
03 4
04 2
等等,想得到以下结果顺序:
id ord
01 1
04 2
02 3
0201 3
0202 2
0203 1
03 4
规则是:首先按照id字段的长短排序(同样长短的按ord),如果id字段有子字段记录比如02下有0201、0202、0203,则子字段必须紧接着父字段段记录。
不知道我表达清楚了没有?
解决方案 »
- pl sql 块只提示完成
- 怎麼把兩條sql查詢結果串接在一起
- 轻松搞定Oracle数据库表中重复的记录
- ed 的问题
- 求助,哪位好心的GG帮我把下面的这个SQL Server的存储过程变成Oracle的?谢谢先!!!!!!!!
- 如何修改已经建好的表的initial参数(表中没有数据)
- [求助]Oracle 9i中怎么处理UTF-8的数据???
- 这段存储过程为什么执行有错误?
- VC中,从一个几百万条记录的表中查找几十万条记录,用多线程效率会不会增加很多?
- oracle exp EXP-00091: Exporting questionable statistics.对dmp有影响不
- 【高分求解】如何用将本地文件以二进制形式存入oracle数据库
- A query view LOB's requires OC18 mode,but OC17 mode is used
from t1
order by length(trim(id)),ord,id
from t1
order by length(trim(id)),ord,id
自己试了一下:select * from t1 order by substr(id,1,length(id)-2)||lpad(ord,2,0)
搞定了,还是谢谢了
,y
,min(y) over(partition by substr(id, 1, 2)) x
from (
select id, ord, row_number() over (order by length(id), ord) y
from t1
)
order by x