表A:
字段1 字段2 字段3 字段4
001 liao AA tw
002 liao AA tw
003 liao BB tw
004 ming CC bb要实现的功能:先通过字段4 group by,然后 order by 字段3
如果字段4一样的条件下,字段2出现同样的值,必须累加1,如liao liao1 liao2 .....输出如下:(主要是实现update 字段2)字段1 字段2 字段3 字段4
001 liao.tw AA tw
002 liao1.tw AA tw
003 liao2.tw BB tw
004 ming.bb CC bb其中字段2的组成格式为:原来字段 + 累加序号(出现同样的+1) + "." + 字段4请问各位高手,能否通过一条sql解决。表中数据字段1为主键,如何实现使效率最高。
先谢谢了,很急。
字段1 字段2 字段3 字段4
001 liao AA tw
002 liao AA tw
003 liao BB tw
004 ming CC bb要实现的功能:先通过字段4 group by,然后 order by 字段3
如果字段4一样的条件下,字段2出现同样的值,必须累加1,如liao liao1 liao2 .....输出如下:(主要是实现update 字段2)字段1 字段2 字段3 字段4
001 liao.tw AA tw
002 liao1.tw AA tw
003 liao2.tw BB tw
004 ming.bb CC bb其中字段2的组成格式为:原来字段 + 累加序号(出现同样的+1) + "." + 字段4请问各位高手,能否通过一条sql解决。表中数据字段1为主键,如何实现使效率最高。
先谢谢了,很急。
---------- ---------- ---------- ----------
1 liao AA tw
2 liao AA tw
3 liao AA tw
4 ming CC bbSQL>
SQL> select c1,c2 || decode(rn,1,'',rn-1) || '.' || c4 as c2,c3,c4 from
2 (select t2.*,row_number() over(partition by t2.c4 order by t2.c1) rn from t2) order by c1
3 / C1 C2 C3 C4
---------- ------------------------------------------------------------- ---------- ----------
1 liao.tw AA tw
2 liao1.tw AA tw
3 liao2.tw AA tw
4 ming.bb CC bb
C1 C2 C3 C4
---------- ---------- ---------- ----------
1 liao AA tw
2 liao AA tw
3 liao AA tw
4 ming CC bb
5 liao BB bb输出的在同一组C4里,比如上面是tw\bb两组,tw出现的liao和bb出现的liao必须又重置,也就是说C2相同的不是一直累加,在不同组必须重新拍