Я делаю запрос, который сортирует и возвращает X строк на основе row_number (). Я использую NHibernate с MSSQL, и я пытаюсь заставить пейджинг работать с использованием CreateSQLQuery, и у меня есть этот запрос:
select s.*
from(
select distinct release.[stop], survey.SurveyId, survey.Created, survey.CopyOfId, survey.DesignTemplateId, survey.UserId, survey.Template, [Row] = Row_Number() over (order by survey.[SurveyId])
from Survey as survey
inner join Release as release on release.SurveyId = survey.SurveyId
group by survey.SurveyId
, survey.Created
, survey.CopyOfId
, survey.DesignTemplateId
, survey.UserId
, survey.Template
, release.[stop]
) as s
where s.[Row] >= 0 and s.[Row] <= 20
order by s.[stop]
Кто-нибудь знает, как заставить это работать, используя HQL или ICriteria (даже лучше) вместо простого SQL?Причина этого в том, что мне нужен запрос, совместимый как с SQLite, так и с MS SQL Server 2005, чтобы я мог использовать .SetMaxResult () или .SetFirstResult ()
Заранее спасибо!