Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Получение данных порциями с сортировкой по нескольким столбцам  [new]
li0_0_0
Member

Откуда:
Сообщений: 4
Всем привет!
Например есть таблица
CREATE TABLE dbo.table1 
(
  id INT IDENTITY
 ,col1 VARCHAR(20) NOT NULL 
 ,col2 DATE NOT NULL
 ,col3 INT NOT NULL
 ,CONSTRAINT PK_table1_id PRIMARY KEY CLUSTERED (id)
)

В ней 10К записей.
Небольшой программкой на Delphi принимаю данные запросом
SELECT * FROM dbo.table1 ORDER BY col3 DESC,col2 DESC,col1 DESC

напрямую, без ADO. Запрос тянет все данные из таблицы. С увеличением данных ожидаемо растет время получение данных.
Как можно сделать симуляцию постраничности? разделить на блоки. Ведь я не могу использовать конструкцию
WHERE ID >= X AND ID <= Y

где например Х=50, а Y=80 из-за определенной сортировки.
Есть вариант, создавать отдельную таблицу и помещать туда отсортированные записи, где col2 > xx-xx-xx
Какие можно еще решить вопрос порции данных с определенной сортировкой?
9 авг 17, 19:07    [20711808]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных порциями с сортировкой по нескольким столбцам  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36887
https://www.sql.ru/faq/faq_topic.aspx?fid=105
9 авг 17, 19:11    [20711813]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных порциями с сортировкой по нескольким столбцам  [new]
li0_0_0
Member

Откуда:
Сообщений: 4
Спасибо!
9 авг 17, 22:57    [20712213]     Ответить | Цитировать Сообщить модератору
 Re: Получение данных порциями с сортировкой по нескольким столбцам  [new]
dsfgs
Guest
sql 2012 OFFSET FETCH
SELECT DepartmentID, Name, GroupName
FROM HumanResources.Department
ORDER BY DepartmentID 
    OFFSET 10 ROWS
    FETCH NEXT 10 ROWS ONLY;
10 авг 17, 23:53    [20715019]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить