![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
2000 Добавить в SELECT номер строки. [MSSQL]
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 такой запрос не работает как надо?