|
|
最初由 ZALBB 发布
[B]
数据类型、长度不变,但数据变了,或者说,不是ID=1的情况,
而是应用时指定的任意一值。
刚才我尝试过,把 'A02' 改为 'A03',删除掉ID=4中多出的一条,
结果就不适用你的方法。
或者这么说,若SQL语句里用不上已知条件(ID=1),
或者根据SUBJECT的值来制定SQL语句的话,都不符合要求。 [/B]
我那方法是有问题,比如:
4 A01
4 A02
4 A03
4 A04
与
4 A01
4 A03
4 A03
4 A03
是等效的,ID相同,有重复记录会有问题。
除非这个重复,而且要使有序,用这个可以:
1 select id,subject,rn-to_number(substr(subject,3))
2 from
3 (
4 select id,subject,row_number() over(partition by id order by subject) rn
5 from classtab
6* )
SQL> /
ID SUBJECT RN-TO_NUMBER(SUBSTR(SUBJECT,3))
---------- ---------- -------------------------------
1 A01 0
1 A02 0
3 A01 0
3 A03 -1
4 A01 0
4 A02 0
4 A03 0
4 A04 0
从这里,判断ID里subject里是一个有序,没间断的。
然后再实现你要的,后面写的SQL很烦,我现在还没实现! |
|