Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Номер по порядку


Страницы:   1 2

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 и так не структуированная база данных и скорость обработки данных медленная,так что борюсь за кождую минуту.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо