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

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

2000 Добавить в SELECT номер строки. [MSSQL]


Страницы:   1 2 3 4

KAA ©   (2002-08-14 19:17:00) 

Как можно в селекте сделать еще одно поле, в котором будет порядковый номер строки? Т.е. чтоб все строки были подряд пронумерованы.


Reindeer Moss Eater   (2002-08-16 08:47:00) [21]

>Suntechnic
В том то и дело, что на план смотрят немногие, зато почти все усвоили простую, но часто спорную истину - "курсор - это тормоза"


Suntechnic   (2002-08-15 17:47:00) [22]

Ну и наговорили, даже комментировать нет желания. Только по сути...
>Polevi © (15.08.02 10:17)
Уважаемый, если у меня набор данных отсортирован по коду товара, я вполне могу расчитывать на то что каждый раз порядок строк будет одинаков (если не добавлять позиций).
Вы уж оговаривайте сразу все условия... если не добавлять, если не удалять, если не редактировать код товара... итого: если набор данных статический. Может в вашем конкретном случае оно и так, но не надо давать советы космического маштаба всем остальным.

>Praco © (15.08.02 09:25)
Примерно так:
select (select count(*) from authors a1 where a1.au_id <= a.au_id), a.* from authors a
order by a.au_id

"а что есть порядковый номер?" А не нужно теоретизировать. Вопрос-то конкретный. Реальные воплощения SQL серверов, как правило, не соответствуют требованиям реляционной модели. Кроме того, если в форме отчета есть поле "№ п/п", не будешь же рассказывать юзеру теорию реляционных отношений.


Единственное практическое применение этого номера я вижу в улучшаемости читаемости отчётов и всё. Но... Вы видели план запроса генерируемый сервером для того что вы предложили? Зачем вы заставляете заниматься сервер дурной работой? А работа ведь дурная, потому как с точки зрения сервера это число полная фикция. Уж если так сложилось что клиенту нужен этот номер(клиент в смысле ПО), то его проше генерить во время отображения или генерации отчёта на этом самом клиенте.


SergSuper   (2002-08-15 13:59:00) [23]

> Praco
По-моему Вы путаете требования к структуре БД с требованиями к SQL серверам. Я например не могу представить (и наверняка Вы не сможете) что бы сервер не позволяет создавать ненормализованные базы.


Johnmen   (2002-08-15 13:23:00) [24]

>Praco © (15.08.02 13:04)

Авторитетов много...И что самое интересное, их понимание и определения реляц.модели могут расходиться ! (не сильно, но могут).

>Реальные СУБД допускают нарушения этих свойств для табличек.

Ну пусть. Главное, чтобы человек не нарушал. Хотя допускается и нарушение в утилитарных целях :)



Praco   (2002-08-15 13:04:00) [25]

Johnmen ©
ОК, про поля неправ. Хотел сказать: в отношении атрибуты не упорядочены, а в таблице БД упорядочены(существует порядок перечисления полей в таблице). => Отступление от реляционной модели.

Johnmen © (15.08.02 09:55)
>Praco © (15.08.02 09:25)
>Реальные воплощения SQL серверов, как правило, не соответствуют
>требованиям реляционной модели.

Каким это таким требованиям ???

Свойства отношений(не все) :
-кортежи уникальны
-значения атрибута в любом кортеже атомарно

Реальные СУБД допускают нарушения этих свойств для табличек. И это не единственные отклонения от модели. Вот что я хотел сказать.

Мне Дейт тоже не понравился, но если он не авторитет, то кто?


Mike Kouzmine   (2002-08-15 13:04:00) [26]

Не к тебе Johnmen. А к другому. Прошу прощения за похабщину у всей честной компании, не выспался. Да и дым над Москвой, настроения не прибавляет. :(


Johnmen   (2002-08-15 13:03:00) [27]

>jonik pegas © (15.08.02 12:50)

Забыли...
Я тоже иногда горячусь...
Совет Praco © (15.08.02 09:25) вполне премлем, согласен, но дальнейшие его рассуждения о реляц.модели меня сильно напрягли...:))))


KAA   (2002-08-15 12:58:00) [28]

Вообще мой, правда пока крайне небольшой, опыт показал одну вещь, если в программе допущена принципиальная ошибка, то на протяжении написания программы ты будешь с ней бороться, или с ее последствиями. Поэтому если что-то подобное заметил, лучше его в корне прсечь, или это придется сделать потом, когда надоест бороться.
Так что если теория говорит, что делать это не стоит, то надо прислушаться к подобному совету, а то приключений можно найти.

Но также надо помнить, что когда человек что-то спрашивает, а тебе кажется что это не правильно, вполне возможно что ты просто не знаешь каких-нибудь нюансов.

Так что идеальный ответ выглядел бы так: "То что ты хочешь несколько криво, и по хорошему это надо сделать так. Но если хочешь по своему делать, то делай вот так."


Johnmen   (2002-08-15 12:56:00) [29]

>Mike Kouzmine (15.08.02 12:45)

Это ты к чему ?

>Mike Kouzmine (15.08.02 12:47)

>стыдно у кого видно< И тому, кто смотрит.

Ж:-))


jonik pegas   (2002-08-15 12:50:00) [30]

Johnmen
Извиняюсь конечно. Погорячился...Мне стыдно
Но на основе совета Praco я сразу же наконец то сделал вывод порядкового номера в запросе для чего ранее мне необходимо было вспомогательное поле-(я задавал такой же вопрос ранее в форуме -ничего лучшего посоветовать не смогли)-отсюда и такая реакция. Но господа, по моему мы спорим на разные темы. Меня устраивает такая ПРАКТИЧЕСКАЯ реализация


Mike Kouzmine   (2002-08-15 12:47:00) [31]

3JIA9I CyKA © - стыдно у кого видно, а у кого болтается, то не считается


Mike Kouzmine   (2002-08-15 12:45:00) [32]

Прав тот, у кого больше прав или денег, что одно и тоже. Любое высказывание любого человека не истина в последней инстанции.
КАА получил задание и спросил конкретно, то надо отвечать конкретно или не отвечать. Ответ "нет и почему" или "да и как" - правильный, а все рассуждения типа "так делать неправильно потому что я (мы, они, и прочие уважаемые деятели) так не делают" являются бредом сивой кобылы.


3JIA9I CyKA   (2002-08-15 12:33:00) [33]

Кто посмел на Johnmenнаезжать!?
Стыдно вам! ОН ЖЕ ПРАВ!!!


Johnmen   (2002-08-15 11:51:00) [34]

>jonik pegas © (15.08.02 11:37) И иже с ним...

Отсутствие внимательности при прочтении постингов не является той чертой, которую надо обозначать и делать на основе этого саркастических замечаний.


jonik pegas   (2002-08-15 11:37:00) [35]

Ты читал некоего и считаешь его рассуждения истиной в последней инстанции...Я же читал множество разных авторов, и они говорят несколько иное, чем Дейт...
Ну что же читай дальше
Был поставлен конкретный вопрос-Praco дал на него конкретный полный ответ!. Можно и поучиться.



Mike Kouzmine   (2002-08-15 11:25:00) [36]

Сколько ни читай, и кого ни читай, а истина все равно где-то рядом. Познавший истину молчит, а не познавший - горячится.
(Себя к познавшим не отношу)


Leran2002   (2002-08-15 11:24:00) [37]

А можно такое проделать с Парадохом???
Типа попробывал:
select
(select count(*)
from "customer.db" a1
where a1.CustNo<=a.CustNo) as Num,
a.*
from "customer.db" a
order by a.CustNo

Такой запрос проканывает но во всех записях Num=0...


Johnmen   (2002-08-15 11:09:00) [38]

...И еще...Ты читал некоего и считаешь его рассуждения истиной в последней инстанции...Я же читал множество разных авторов, и они говорят несколько иное, чем Дейт...


Val   (2002-08-15 11:06:00) [39]

тогда, скорее всего придется использовать курсор, как уже говорили, получаем соответственно потерю в скорости :(
Вариант же Praco © (15.08.02 09:25) безусловно хорош, но только если не важна сортировка, как я понял. А пользователь, как правило хочет видеть отсортированный и пронумерованный набор.


Johnmen   (2002-08-15 11:05:00) [40]

>Praco © (15.08.02 10:49)
>... В реальных SQL серверах поля пронумерованы и их порядок,
>как правило, важен.

Ты где такого начитался ????!!!!!!! :)))))

Уважаемый ! Поскольку ты читал давно, то видимо подзабыл основные моменты реляц.БД ! А теперь, извини, гонишь пургу...

И вообще, какое отнощение нумерация (см.вопрос) имеет к реляционности ???!!!


Страницы:   1 2 3 4

Наверх

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