2015-10-20 119 views
1

我在Oracle数据库上有一个sql select语句,我需要添加一个自动递增字段(取回记录,而不是数据库)。我一直在尝试一些我在上面找到的回复: How to generate auto increment field in select query在Oracle select sql语句上设置自动递增字段

但似乎不行。 Oracle有什么限制?任何人都知道吗?将是巨大的,如果自动递增那张100 100

谢谢

解决:

SELECT A, B, (ROW_NUMBER() OVER(PARTITION BY 100 ORDER BY FDAAID)*100) AS C 
FROM SOME_TABLE 
WHERE A > 15; 

随着* 100计数器从100要100

回答

3

在我看来,你搜索ROW_NUMBER

SELECT *, ROW_NUMBER() OVER(PARTITION BY ... ORDER BY ...) AS rn 
FROM your_tab 

LiveDemo

+1

是它的工作原理谢谢 – proktovief

0

解决:

SELECT A, B, (ROW_NUMBER() OVER(PARTITION BY 100 ORDER BY FDAAID)*100) AS C 
FROM SOME_TABLE 
WHERE A > 15; 

随着* 100计数器从100要100

+0

'PARTITION BY 100'是无用的,因为这只会造成一个单个分区。你可以完全删除它 –

+0

谢谢,我从现在开始 – proktovief