![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Номер по порядку
Faeton08 © (2004-08-10 09:46:00)Добрый день.
Не подскажите как в Select добавить искуственный номер по порядки,если такого поля в нет
Danilka (2004-08-10 15:13:00) [1][22] roottim © (10.08.04 15:11)
номано, не сбивается. :))
roottim (2004-08-10 15:11:00) [2]ты вот так еще попробуй :)).. чтобы знать...
select rownum, r.* from (select * from .. order by ...) r
Danilka (2004-08-10 14:07:00) [3][20] Sergey13 © (10.08.04 14:04)
Хм, действительно, сделал ордер бай по полю на котором нет индекса - сбивается. :((
Буду знать.
Sergey13 (2004-08-10 14:04:00) [4]2[19] Danilka © (10.08.04 13:55)
Значит повезло (может таблица маленькая или влияние индексов). Я перепроверил на том же 8.1.7 порядок сбивается. Попробуй на таблице побольше.
Danilka (2004-08-10 13:55:00) [5][18] Sergey13 © (10.08.04 13:41)
Специально проверил:
select rownum, t.* from firm t order by firm
и
select rownum, t.* from firm t order by cont
порядок записей разный, первая колонка - числа с 1 до 12-и по-порядку.
Орокол 8.1.7
Sergey13 (2004-08-10 13:41:00) [6]2[11] Danilka © (10.08.04 13:14)
>Но это, конечно, не стандарт, и кроме орокла нигде не прокатит
Он и на оракле не прокатит, если добавить order by. Ибо вычисляется при извлечении до сортировки.
Соловьев (2004-08-10 13:33:00) [7]
> от туда же откуда и инфа о t.* ;-) Все сервер выдает
вот мы и пришли к тому что я хочу сказать - что сервер уже хранит эту информацию(в системных таблицах или памяти), так что вычислять не надо...Значит быстрее.
Danilka (2004-08-10 13:29:00) [8][14] Соловьев © (10.08.04 13:22)
Угу, что-то типа номера записи возвращаемого набора данных.
jack128 (2004-08-10 13:28:00) [9]
> [9] Anatoly Podgoretsky ©
да я понимаю.. Вон - у Данилки более коректный пример.
> инфа откуда о номере записи?
от туда же откуда и инфа о t.* ;-) Все сервер выдает
Соловьев (2004-08-10 13:22:00) [10]
> ээ, немного не понял вопроса :)
>
> select rownum, t.* from table1 t
> вернет всю таблицу table1, плюс первая колонка - номер по-порядку
> начиная с 1.
та понял:)
инфа откуда о номере записи?
Danilka (2004-08-10 13:20:00) [11][12] Соловьев © (10.08.04 13:17)
ээ, немного не понял вопроса :)
select rownum, t.* from table1 t
вернет всю таблицу table1, плюс первая колонка - номер по-порядку начиная с 1.
Соловьев (2004-08-10 13:17:00) [12]
> В Орокле есть rownum. :)
и это что средствами СКЛ вычисляются? или сервер дает нужную инфу?
Danilka (2004-08-10 13:14:00) [13]Но это, конечно, не стандарт, и кроме орокла нигде не прокатит
Danilka (2004-08-10 13:13:00) [14][7] Соловьев © (10.08.04 12:56)
В Орокле есть rownum. :)
Anatoly Podgoretsky (2004-08-10 13:11:00) [15]jack128 © (10.08.04 13:07) [8]
Не прокатит в многопользовательской, номера то будут, но не подряд. И еще не дай бог другой произведет обнуление :-)
jack128 (2004-08-10 13:07:00) [16]
> таких средств нет ни в одном СКЛ,
ты знаешь все диалекты SQL что б так категорично заявлять? ;-)
SELECT GEN_ID(MYGEN, 1), FIELD1, FIELD2, FIELD3, ... FROM MYTABLE :-) Правда генератор обнулить сначало нужно..
> а есть системная инфа - она берется из данных сервера. Это
> на быстрее чем на клиенте, так как считать не надо - эта
> информация есть уже
Она(информация) есть.. Где то.. Её нужно откопать и переслать клиенту..На это уходит время.. Моё ИМХО - считать порядковый номер записи - это задача клиента
Соловьев (2004-08-10 12:56:00) [17]
> средствами SQL такая задача выполняется медленее, чем клиентским
> приложением..
таких средств нет ни в одном СКЛ, а есть системная инфа - она берется из данных сервера. Это на быстрее чем на клиенте, так как считать не надо - эта информация есть уже.
jack128 (2004-08-10 12:50:00) [18]
> так что борюсь за кождую минуту.
средствами SQL такая задача выполняется медленее, чем клиентским приложением..
roottim (2004-08-10 12:44:00) [19]>Я пишу отчеты
все отчеты (по крайней мере в Delphi) снабжены такими средствами как #строки по порядку.
к примеру в FR это будет [LINE#]
Faeton08 (2004-08-10 09:56:00) [20]Это я тоже знаю,просто Lotus и так не структуированная база данных и скорость обработки данных медленная,так что борюсь за кождую минуту.