|
Как пронумеровать выборку?
|
|||
---|---|---|---|
#18+
Подскажите, пожалуйста, как получить пронумерованный список записей из базы. Например, надо получить пронумерованный по порядку список наименований. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2002, 09:48 |
|
Как пронумеровать выборку?
|
|||
---|---|---|---|
#18+
можно использовать псевдостолбец ROWNUM select ROWNUM,... from ... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2002, 10:01 |
|
Как пронумеровать выборку?
|
|||
---|---|---|---|
#18+
Этот прикол не проходит если есть сортировка или группировка. В этом счучае можно сделать select из select'а: select rownum, a.* from (select * ля-ля-ля) a В Reports есть другой выход: создать элемент групповой обработки и поставить ему свойство "Функция"-"Счетчик". ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2002, 10:44 |
|
Как пронумеровать выборку?
|
|||
---|---|---|---|
#18+
select rownum, a.* from (select ... from ... order by ...) a Ага. С шибко вумным оптимизитором. Как же :) Если оптимизатор увидит такую конструкцию, то ещё не факт, что он не попытается её соптимизировать сделав из неё один простой селект. А дальше последствия прогнозируемы -- будут выбраны значения rownum для внутреннего селекта, которые присваиваются до сортировки... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2002, 03:21 |
|
Как пронумеровать выборку?
|
|||
---|---|---|---|
#18+
В тонкостях обработки таких конструкций оптимизатором не копался, но на опрыте проверено, что выбирается верно (8.1.6), нока ни разу не стреляло и думаю вряд ли стрельнет. Такая конструкция у меня работает как на протых выборках, так и на агрегированых, джоин. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2002, 12:58 |
|
Как пронумеровать выборку?
|
|||
---|---|---|---|
#18+
Кстати, совсем забыл -- вложеному запросу нельзя указать нельзя указать, как сортировать выборку, а только внешнему. А полагаться на то, что сервер для того, чтобы сделать GROUP BY отсортирует данные, лучше не полагаться... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2002, 01:54 |
|
Как пронумеровать выборку?
|
|||
---|---|---|---|
#18+
А могу я узнать, почему вложеному запросу нельзя указать order by, из какого источника взята такая информация? Я только что создал таблицу, залил туда беспорядочно немного данных, результат при выборке: - select * from test - данные выдаются беспорядочно; - select * from (select * from test order by a) - упорядочено; -------------------------- - select rownum, test.* from test order by a - поле а упорядочено, а rownum не по-порядку; - select rownum, t.* from (select * from test order by a) t - rownum и поле а упорядочены; ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2002, 16:56 |
|
Как пронумеровать выборку?
|
|||
---|---|---|---|
#18+
1) Смотрите план выполнения запроса, тогда все станет на свои места: когда нумеруються записи, а когда происходит сортировка выборки. 2) ORDER BY во вложенных запросах можно использовать в коммандном SQL. Но попробуйте в PL/SQL блоке объявить такой курсор - шиш чего получится. Выход - использовать открытие динамического курсора (EXECUTE IMMEDIATE и все такое). 3) В реляционной модели, когда структура базы/таблиц создаеться девелопером и заранее известна практически всегда можно обойтись без ORDER BY используя индексы. Естественно при денормализации и траты пространства (памяти и дисковой и оперативной). Зато однозначный выигрыш в производительности. Другое дело, когда структура таблиц заранее неизвестна и создаеться юзером; и есть какие-то причины, по которым ее нельзя сгенерить в статический вид. (Вроде бы такие хреновины называються Мета-данные.) Или пользователь задает, что мол хочу сортировать и по этой колонке и по пятой и по десятой. Тогда без ORDERA не обойтись. 4) И вообще, лафа вархаузерам - выполняеться запрос 0,1 секунду или 5 или 25 - по фигу, юзер подождет. В конце концов у системы ограниченный круг юзеров. В он-лайне такие штуки не прокатывают. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2002, 19:10 |
|
Как пронумеровать выборку?
|
|||
---|---|---|---|
#18+
Вопрос: а на ... тебе это нужно ??? может ты зря заморачиваешься??? лично я даже не могу себе представить где можно применить нумерацию строк, может это всего навсего один из длиных и не правильных путей к достижению нужной цели??? скажи что ты хочешь замутить? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2002, 11:05 |
|
|
start [/forum/topic.php?fid=52&msg=32033892&tid=1993244]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 136ms |
0 / 0 |