带有Where子句的OFFSET SQL查询

3
我在使用OFFSET(在linq中使用skip)时遇到了一个奇怪的问题。当我使用where子句过滤空值时,offset返回的记录顺序错误。
select * from ExpectedApplication where ApplicationId is null
order by PaymentDate desc 
OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY 

select * from ExpectedApplication where ApplicationId is null
order by PaymentDate desc 
OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY 

输出结果是:

enter image description here

由于这个问题,我的分页结果返回了不正确的数据。请帮忙解决。非常感谢。

祝好, Vivek


显示带有您的图像的“PaymentDate”列:select PaymentDate,* from ExpectedApplication where ApplicationId is null order by PaymentDate desc OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY - Lukasz Szozda
2
很可能,出现问题的ID具有相同的“PaymentDate”,因此被错误地排序; 尝试将“Id”添加到“ORDER BY”子句中。 - marmarta
虽然它解决了问题,但我只想按日期排序。 - user3169167
1个回答

0
select * from (select * from ExpectedApplication where ApplicationId is null) as tbl
order by PaymentDate desc
OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY

你可以尝试这样做(使用子查询) 这对我有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接