想实现这样的功能:在按plan_code排序后,再按排序后的顺序给每一行加上行序1、2、3等,我用下面的语句,但是出来的序号成了这样
1 涂装 B20120306001
3 涂装 B20120306002
7 涂装 B20120306003
2 总装 C20120306001
6 总装 C20120306002
4 总装 C20120306003
5 总装 C20120306004
8 总装 C20120306005
而我想要的是1、2、3、4、5这样排下去的~求解
select ROWNUM,"
+"(case SUBSTR(PLAN_CODE,1,1) when 'A' then '焊装' when 'B' then '涂装' else '总装' end)state,"
+ "PLAN_CODE,PLAN_NAME,PLAN_MODEL,PLAN_BEGIN_DATE,PLAN_QUANTITY,PLAN_ONLINE_QUANTITY,PLAN_OFFLINE_QUANTITY,DDBH "
+"from data_plan where PLAN_BEGIN_DATE=to_date('" + date2 + "','yyyy-mm-dd') order by plan_code"
------解决方案--------------------------------------------------------
因为rownum是子你查询的时候就已经生成了 然后按照plan_code排序 rownum当然不会连续了
select ROWNUM,t1.* from "
+"(select (case SUBSTR(PLAN_CODE,1,1) when 'A' then '焊装' when 'B' then '涂装' else '总装' end)state,"
+ "PLAN_CODE,PLAN_NAME,PLAN_MODEL,PLAN_BEGIN_DATE,PLAN_QUANTITY,PLAN_ONLINE_QUANTITY,PLAN_OFFLINE_QUANTITY,DDBH "
+"from data_plan where PLAN_BEGIN_DATE=to_date('" + date2 + "','yyyy-mm-dd') order by plan_code) t1"