powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Получение n-ой записи из таблицы, упорядоченной по некому полю
6 сообщений из 6, страница 1 из 1
Получение n-ой записи из таблицы, упорядоченной по некому полю
    #32022295
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую!

Есть таблица Users (UserID uniqueidentifier PRIMARY KEY NOT NULL DEFAULT NEWID(), Username varchar(255) NOT NULL)
Есть выборка: SELECT UserID, Useraname FROM Users ORDER BY Username
Вопрос: как найти UserID n-ой по счету записи в приведенной выборке? Вопрос, конечно, не совсем корректен, но суть
видимо, ясна - получить UserID записи, которая будет n-ой если сортировать по Username.
Естественно, без курсора.

Спасибо!
...
Рейтинг: 0 / 0
Получение n-ой записи из таблицы, упорядоченной по некому полю
    #32022324
Denis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это ,наверное, слишком вычурно, но чем можем, так сказать:
select top 1 UserID from (select top n* from Users
order by Username desc) t
...
Рейтинг: 0 / 0
Получение n-ой записи из таблицы, упорядоченной по некому полю
    #32022328
Фотография Александр Степанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
create table a (pk int identity(1,1) not null, orderby int, field nvarchar(255))
go

insert into a (orderby,field) values (12,'001')
insert into a (orderby,field) values (14,'002')
insert into a (orderby,field) values (5,'003')
insert into a (orderby,field) values (8,'004')
insert into a (orderby,field) values (15,'005')
insert into a (orderby,field) values (13,'006')
insert into a (orderby,field) values (10,'007')
go

create procedure SeekRecordByNum
@num int
As
DECLARE @PK int
DECLARE @Sql nvarchar(255)

If @num>(Select Count(*) from a)
BEGIN
Select * from a where 0=1
RETURN
END

Set @SQL='Select TOP '+CAST(@num as varchar(13))+' @PK=PK from a order by orderby'
execute sp_executeSQL @SQL,N'@PK int OUTPUT',@PK OUTPUT

Select TOP 1 * from a where PK=@PK
Go

exec SeekRecordByNum 1
exec SeekRecordByNum 2
exec SeekRecordByNum 6
exec SeekRecordByNum 100

drop table a
drop procedure SeekRecordByNum
...
Рейтинг: 0 / 0
Получение n-ой записи из таблицы, упорядоченной по некому полю
    #32022330
Denis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пардон, чуть ошибся, надо вот так:
select top 1 User_id from(
select top n* from Users
order by Username)t
order by Username desc
...
Рейтинг: 0 / 0
Получение n-ой записи из таблицы, упорядоченной по некому полю
    #32022336
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответы, но я имел ввиду без dynamic sql.
Запрос вида select top n ... без dynamic sql не проходит...
...
Рейтинг: 0 / 0
Получение n-ой записи из таблицы, упорядоченной по некому полю
    #32022337
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответы, но я имел ввиду без dynamic sql.
Запрос вида select top n ... без dynamic sql не проходит...
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Получение n-ой записи из таблицы, упорядоченной по некому полю
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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