У меня сложный запрос с предложением group by и order by, и мне нужно отсортированное число строк (1 ... 2 ... (n-1) ... n), возвращаемое с каждой строкой. Использование ROWNUM (значение присваивается строке после прохождения предикатной фазы запроса, но до того, как запрос выполняет какую-либо сортировку или агрегацию) дает мне не отсортированный список (4 ... 567 ... 123 ... 45 ...). Я не могу использовать приложение для подсчета и назначения чисел для каждой строки.Oracle ROWNUM pseudocolumn
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, чтобы сделать что-нибудь больше, чем ограничить общее количество строк, возвращаемых в запросе (например, И ROWNUM < 10) вы будете нуждаться к псевдониму ROWNUM:
select *
(select rownum rn, a.* from
(<sorted query>) a))
where rn between 500 and 1000
Смежные вопросы
- 1. Поведение rownum в Oracle
- 2. ROWNUM IN ORACLE
- 3. Oracle select * and rownum
- 4. Cassandra: Oracle rownum
- 5. Производительность Oracle ROWNUM
- 6. oracle rownum недействительный идентификатор
- 7. Oracle оптимизации запросов с ROWNUM
- 8. Oracle ROWNUM с несколькими объединениями
- 9. Oracle rownum возвращает неправильный результат
- 10. rownum issue in oracle query
- 11. oracle sql wih rownum <=
- 12. ORACLE SQL ROWNUM, порядок выполнения
- 13. Oracle SQL Update по ROWNUM
- 14. Oracle ROWNUM на «родительской» таблицы
- 15. EclipseLink pagination и Oracle ROWNUM
- 16. Вставить строки с помощью ROWNUM В Oracle
- 17. Oracle эквивалент ROWNUM для SQL Server 2005?
- 18. SQL Oracle - использование RowNum в запросе
- 19. Предложение Oracle EXISTS Vs ROWNUM = 1
- 20. Oracle: ROW_NUMBER 20 раз быстрее, чем ROWNUM
- 21. SQL Oracle rownum on multiple where clauses?
- 22. Oracle pagination ROWNUM column> = значение вызов
- 23. Преобразовать ROWNUM() из db2 в Oracle
- 24. Преобразование rownum из Oracle в Postgres
- 25. Oracle rownum in db2 - архивирование данных Java
- 26. возвращает Oracle/Exadata RowNum Range повторяющихся строки
- 27. Oracle rownum <[n] альтернативы? Понимание?
- 28. Невозможно обновить столбец с ROWNUM в Oracle
- 29. Функция ORACLE ROWNUM (с использованием страницы разбиения)
- 30. Вставить строку с увеличением числового идентификатора (например, rownum) с использованием Oracle SQL?
Ну, по крайней мере, означает, что было бы двое из нас, делающих это так, lol! – Carl 2008-10-01 21:14:11