异度部落格

学习是一种生活态度。

0%

Oracle查询结果自动生成序号

一般情况下,可以如下:

1
select rownum, a from A;

但是当后面有多表关联,order by 排序的时候,

1
select rownum, a from A,B where A.a=B.b order by A.a;

rownum 就可能会乱了。

这时候,可以利用分析函数 rank()来实现:

1
select rank() over(order by t.b) rowno, t.a, t.c from test t order by t.b;

这样就既可以排序,又可以自动加上连续的序号了。

参考资料: http://yuaoi.iteye.com/blog/767889 http://www.cnblogs.com/mycoding/archive/2010/05/29/1747065.html