我有一個複雜的查詢與組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