【发布时间】:2016-03-11 20:51:03
【问题描述】:
我面临一个关于 OFFSET 的奇怪问题(在 linq 中使用跳过)。当我使用 where 子句过滤 null 值时,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
输出是:
由于这个问题,我的分页结果返回了不正确的数据。请帮忙。非常感谢。
问候, 维韦克
【问题讨论】:
-
用您的图片显示
PaymentDate列:select PaymentDate, * from ExpectedApplication where ApplicationId is null order by PaymentDate desc OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY -
很可能有问题的ID有相同的
PaymentDate,所以排序不正确;尝试将Id添加到ORDER BY子句中。 -
虽然它解决了问题,但我只想按日期订购。
标签: sql linq linq-to-sql