powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как получить номер строки?
9 сообщений из 9, страница 1 из 1
Как получить номер строки?
    #32016185
Andy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как получить номер строки в запросе.
...
Рейтинг: 0 / 0
Как получить номер строки?
    #32016199
Через временную таблицу. Ниже приведен проверенный пример:

create table #t1
(Number int identity(1,1),
Srt varchar(90))

insert #t1
select [name]
from client
order by [name]

select * from #t1

drop table #t1
...
Рейтинг: 0 / 0
Как получить номер строки?
    #32016207
Andy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В том то и дело что не создавая временніх таблиц!
...
Рейтинг: 0 / 0
Как получить номер строки?
    #32016237
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
declare @I int
set @I=0
select @I=@I+1, SomeField from SomeTable

Только в такой конструкции нельзя использовать Order By! А SergSuper настоятельно рекомендует подобными конструкциями вообще не пользоваться (если я правильно его понял).
...
Рейтинг: 0 / 0
Как получить номер строки?
    #32016254
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подобную конструкцию не рекомендует использовать и сам SQL
A SELECT statement that assigns a value to a variable must not be combined with data-retrieval operations.
Чего-то Вы неподумавши написали
...
Рейтинг: 0 / 0
Как получить номер строки?
    #32016262
Alik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При наличии Id:
SELECT (SELECT COUNT( *) FROM MyTable T1 WHERE T1.Id <= T2.Id) AS Rank, T2.Id
FROM MyTable T2
ORDER BY T2.Id

Источник: Рон Саукап "Основы SQL Server 6.5"
...
Рейтинг: 0 / 0
Как получить номер строки?
    #32016272
Alexander Rudenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То Alik:
А если id будет uniqueidentifier?
...
Рейтинг: 0 / 0
Как получить номер строки?
    #32016290
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, я и вправду впопыхах фигню-с спорол-с. Похожий прием прокатывает только с командой Update. А для этого в таблице нужен вспомогательный столбец (например, Counter)
declare @I int
set @I=0
Update SomeTable set Counter=0 -- Обнуление нумерации попредыдущим выборкам
Update SomeTable set @I=Counter=@I+1
where ...
select * from SomeTable

Правда, я не уверен, что этот вариант лучше варианта с временной таблицей. Скорее, даже наоборот.
...
Рейтинг: 0 / 0
Как получить номер строки?
    #32016315
Alik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To Alexander Rudenko
Не вижу препятствий:

SET NOCOUNT ON
CREATE TABLE ##Temp ( Id uniqueidentifier, Code Int)

DECLARE @i AS Int

SET @i = 1

WHILE @i < 1000
BEGIN
INSERT INTO ##Temp Values ( NEWID(), @i + DATEPART( ms, GETDATE()))
SET @i = @i + 1
END

SELECT (SELECT COUNT( *) FROM ##Temp T1 WHERE T1.Id <= T2.Id) AS Rank, T2.Id, T2.Code
FROM ##Temp T2
ORDER BY T2.Id

DROP TABLE ##Temp

SET NOCOUNT OFF
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как получить номер строки?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]