2016-03-25 6 views
0

У меня есть экран поиска, который позволяет пользователю искать информацию и заполняет сетку. Некоторые результаты поиска возвращают огромное количество данных. Я пытаюсь создать пейджинговую сетку, чтобы я только извлекал из процедуры хранения 10 или 20 результатов за раз. (У меня уже есть подкачки сетки в пользовательском интерфейсе)ограничение результатов в sybase ASE между определенным диапазоном

Я пытаюсь сделать что-то вроде этого:

select * from wl_eval limit 1, 20 

Приведенный выше запрос будет возвращать только первые 20 записей. Как я смогу выполнить это в Sybase ASE? К сожалению, для моего клиентского проекта мы используем Sybase. Я знаю, что в других машинах баз данных мы могли бы использовать запрос, о котором я упоминал выше. Я также знаю, что мы можем использовать SET ROW COUNT 20, но это не будет работать, если я хочу определенный диапазон, скажем от 30 до 50.

Любые мысли?

ответ

0

Добавить TOP numberofrecords вы хотите вернуть

DECLARE @intStartRow int; 
DECLARE @intEndRow int; 

SET @intStartRow = (@intPage -1) * @intPageSize + 1; 
SET @intEndRow = @intPage * @intPageSize;  

WITH wl_eval AS 
(SELECT field, 
ROW_NUMBER() OVER(ORDER BY intID DESC) as intRow, 
COUNT(intID) OVER() AS intTotalHits 
    FROM tblBlog) 
SELECT field, intTotalHits FROM wl 
WHERE intRow BETWEEN @intStartRow AND @intEndRow 
+0

ROW_NUMBER() не работает для меня – Erick

0
SELECT TOP 20 <column list> 
FROM YourTable 
ORDER BY <list> 

 Смежные вопросы

  • Нет связанных вопросов^_^