SQL Server нумерация и отфильтрованные результаты

У меня есть приложение, в котором мне нужно отобразить «страницы» данных в списке. Основная идея довольно распространена. На дисплее отображается список элементов, а в нижней части экрана расположены элементы управления, позволяющие перейти на следующую «страницу». данных.

Все хорошо. У меня это работает.

Ниже приводится SQL в представлении, которое я использую для поддержки & quot; next & quot; поведение.

CREATE VIEW CampaignParticipants AS
SELECT  row_number() OVER (ORDER BY TPT.LastName, TPT.FirstName, TPT.DoB) AS RowNumber
        ,CGP.*
        ,TPT.*
FROM    tblCampaignGEDPush CGP
JOIN    tblParticipants TPT
ON      CGP.PartID = TPT.PartID

Вот как я использую ВИД

SELECT  *
FROM    CampaignParticipants
WHERE   RowNumber >= 0
AND     RowNumber <= 100

Это имитирует захват "первой страницы" из 100 результатов из VIEW. Страницы через каждый набор результатов просто персик.

Отлично .. НО

Как некоторые из вас, которые имели дело с этим, вероятно, знают, это ошибочно. Если я хочу искать наTPT.LastName like 'R%' и получить первый набор результатов, я обречен.

Я хочу начать смотреть наRowNumber = 0, останавливаться наRowNumber = 100, но "R" результаты, вероятно, будут далеко за пределами этого диапазона. Upshot: список возвращается пустым.

И это становится более липким: пользователь хочет иметь возможность «фильтровать» на LastName, FirstName, DoB, Location, Phone, Zip, что угодно.

** редактировать: я действительно не могу установить фильтр на "внутреннюю" страницу. запрос, так как он в представлении, и фильтр может изменяться произвольно

Кто-нибудь есть какие-либо идеи, как получить этот набор результатов естьrow_number() наfiltered множество результатов?

Ответы на вопрос(3)

Ваш ответ на вопрос