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) 

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


asdf   (2002-08-16 15:40:00) [1]

Догоним постов до сотки?!!!:)
Не много осталось!:)))


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

И я 8(


KSergey   (2002-08-16 15:27:00) [3]


> Delirium © (16.08.02 13:55)

Эх, не успел я ;)
Да, вот это именно то средство, которое есть в MS SQL для нумерации
Можно еще несколько иначе извернуться - после выборки темповой таблицы добавить в ней поле Identity, хотя вот именно такого способа, как у Delirium я не знал...


Delirium   (2002-08-16 13:55:00) [4]

set nocount on
select Identity(int, 1,1) as Num, *
into #tmp from MyTable
select * from #tmp
drop table #tmp


nikolo   (2002-08-16 13:33:00) [5]

> cherruty, молодец! Из всех единственно правильный ответ дал. Вот только кажется делать надо не
"SELECT RankID =", а "SELECT distinct RankID ="


Кулюкин Олег   (2002-08-16 13:25:00) [6]

2 nikolo © (16.08.02 10:20)
> Слушайте, ребятки, давайте договоримся на будущее, что если задается конкретный вопрос, то нужно давать конкретный ответ!
Вся трудность в том, что часто задается "неправильный" вопрос, т.к. человек его задавший неверно понимает стоящую перед ним задачу (или подходы к ее решению).
В таких случаях лучше не отвечать на вопрос сразу, а уточнить, чего на самом деле хочет автор.


Temp   (2002-08-16 12:40:00) [7]

Можно создать процедуру:

create table #Test(ID_REC int identity(1, 1) not null,далее список нужных полей)

insert into #Test(список нужных полей) select (список нужных полей) from Test where условия

select * from #test

в итоге получаем поле ID_REC с номерами по порядку


Johnmen   (2002-08-16 11:49:00) [8]

>cherruty (16.08.02 11:38)

Рона Стаукап ты конечно почитал, а вот предыдущие посты видимо было влом...:)


cherruty   (2002-08-16 11:38:00) [9]

Это же очень просто читайте Рона Стаукап "SQL Server"

SELECT RankID =
( select count (distinct Field1 )
FROM Table1
WHERE Table1.Field1 <= Table.Field1 ),
Table.*
FROM Table1 Table

RankID и будет порядковый номер
Field1 - любое поле с уникальными значениями



Suntechnic   (2002-08-16 11:37:00) [10]

>Polevi © (16.08.02 11:22)
Где вы видели чтобы я в этой ветке что-нибудь кому-нибудь советовал ???
Ваш самый первый пост можно трактовать как совет. Хотя если оно не так прошу прощения...

Если юзер хочет номер записи - значит так надо вот и все.
Желание клиента закон :)


cherruty   (2002-08-16 11:37:00) [11]

Это же очень просто читайте Рона Стаукап "SQL Server"

SELECT RankID =
( select count (distinct Field1 )
FROM Table1
WHERE Table1.Field1 <= Table.Field1 ),
Table.*
FROM Table1 Table

RankID и будет порядковый номер
Field1 - любое поле с уникальными значениями



Polevi   (2002-08-16 11:22:00) [12]

2Suntechnic ©
Где вы видели чтобы я в этой ветке что-нибудь кому-нибудь советовал ??? Если юзер хочет номер записи - значит так надо вот и все.


Suntechnic   (2002-08-16 10:34:00) [13]

>nikolo © (16.08.02 10:20)
Интересно, вы давно на этом форуме? Что-то мне подсказываеь что недавно. Я не беру в рассмотрение данный конкретный случай, но зачастую тут(на форуме) народ сам неведает чего хочет. А такие альтруисты как я :) пытаются всё-таки разобраться зачем надо изобретать велосипед...

Своими умозаключениями вы просто достаете, читать смешно.
Ну тут проблема решается достаточно просто, не читайте...

Сколько людей столько мнений... у вас оно одно... у других другое... так что будьте терпимее.


Reindeer Moss Eater   (2002-08-16 10:30:00) [14]

>nikolo
Ну вот пример такого конкретного ответа:
Добавить физическое поле в таблицу, к которой делается запрос.
Выполнить запрос c RequestLive=True.
Пройти по записям и пронумеровать их.
Встать в начало набора данных.
А польза от такого конкретного совета?


Johnmen   (2002-08-16 10:28:00) [15]

>nikolo © (16.08.02 10:20)
>...Своими умозаключениями вы просто достаете, читать смешно.

Так достаем или смешно ? Ты бы определился...
А уж потом м.б. и заглючим договор...


nikolo   (2002-08-16 10:20:00) [16]

Слушайте, ребятки, давайте договоримся на будущее, что если задается конкретный вопрос, то нужно давать конкретный ответ!
Если делать нечего и хочется просто потрепаться, то для этого есть соответствующий раздел. Своими умозаключениями вы просто достаете, читать смешно. У человека проблема, а вы ему "...а что есть порядковый номер?" Да какая разница? Козе сразу понятно, что ему нужно получить!
Надеюсь, вы будете не против моего предложения.


Leran2002   (2002-08-16 09:45:00) [17]


> Reindeer Moss Eater (16.08.02 09:21)

Да жалко конечно...


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

>Leran2002
А нет генераторов в MSSQL.


Leran2002   (2002-08-16 09:03:00) [19]

можно воспользоваться генератором:
CREATE GENERATOR NUM_GEN;

перед использыванием ставим его в 0:
SET GENERATOR NUM_GEN TO 0;

а потом выполнить запрос:
SELECT GEN_ID(NUM_GEN,1) AS NUM, C.*
FROM CUSTOMER C;

чтоб небыло путаницы можно для каждого юзера создать собственный генератор...


Ekaterina   (2002-08-16 08:50:00) [20]

А всё-таки, почему в Paradoxe такой запрос не работает как надо?


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

Наверх

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