我有一个复杂的查询与组by和order by子句,我需要一个排序行号(1 ... 2 ...(n-1)... n)与每行返回。使用ROWNUM(值在查询的谓词阶段通过之后但在查询执行任何排序或聚合之前赋值给一行)为我提供了非排序列表(4 ... 567 ... 123 ... 45 ...)。我无法使用应用程序对每行进行计数和分配数字。甲骨文ROWNUM伪列
3
A
回答
11
是否有一个原因,你不能只是做
SELECT rownum, a.*
FROM (<<your complex query including GROUP BY and ORDER BY>>) a
3
你可以做它作为一个子查询,所以有:
select q.*, rownum from (select... group by etc..) q
这将可能工作...不知道有没有比这更好的东西。
0
您可以使用内嵌查询吗?即
SELECT cols, ROWNUM
FROM (your query)
0
假设你查询已订购的方式,你的愿望,你只是想一个数字来表示它是什么行中的顺序:
SELECT ROWNUM AS RowOrderNumber, Col1, Col2,Col3...
FROM (
[Your Original Query Here]
)
和替换“COLX”与您的查询中列的名称。
0
我有时也这样做:
SELECT * FROM
(SELECT X,Y FROM MY_TABLE WHERE Z=16 ORDER BY MY_DATE DESC)
WHERE ROWNUM=1
0
如果你想使用ROWNUM做任何事情超过限制的总行数查询(例如AND ROWNUM < 10)你需要返回别名ROWNUM:
select *
(select rownum rn, a.* from
(<sorted query>) a))
where rn between 500 and 1000
相关问题
- 1. 甲骨文:ROW_NUMBER比ROWNUM
- 2. 甲骨文获得序列或ROWNUM加上先前的行
- 3. 甲骨文 - 数列
- 4. 甲骨文ORDER BY与ROWNUM或HAVING> = ALL
- 5. 这里的rownum = 1个查询到一次在甲骨文
- 6. 甲骨文列值修正
- 7. 计算单列甲骨文
- 8. 甲骨文UNION不同列
- 9. 甲骨文进入列
- 10. 甲骨文:另一列
- 11. 删除单列 - 甲骨文
- 12. 甲骨文行要在列
- 13. 列值到头甲骨文
- 14. DROP甲骨文队列
- 15. 组列在甲骨文
- 16. 甲骨文通过列表
- 17. 增幅列在甲骨文
- 18. 甲骨文,让所有列
- 19. 甲骨文 - 在multple列
- 20. 与XMLType列在甲骨文
- 21. 列的行与甲骨文
- 22. Hibernate和甲骨文序列
- 23. 甲骨文金门序列
- 24. 与甲骨文
- 25. 在甲骨文
- 26. 在甲骨文
- 27. 甲骨文
- 28. 甲骨文,REGEXP_LIKE
- 29. 在甲骨文
- 30. 在甲骨文
嗯,至少不是说我们两个会这样做,哈哈! – Carl 2008-10-01 21:14:11