我已经创建了一个SQL视图,并希望执行Offset fetch next子句来实现我的应用程序的服务器端分页,但是当我在视图上使用Offset fetch子句时,结果没有被正确过滤,我可以在下一个结果集中看到相同的行
Create view MyView AS
Select Id, Name, LastUpdatedDate from Table1
Union
Select Id, Name, LastUpdatedDate from Table2
Select * From MyView
Order by LastUpdatedDate Desc
Offset 0 Rows Fetch Next 14 Rows Only
当我运行上面的Select查询时,我看到我使用0偏移量的第一个结果集的一些记录,当我使用1作为偏移值时,在下一个结果集上显示。
有什么想法吗?多谢
我建议使用存储过程来检索数据。你可以传递页码并将其乘以14作为偏移量或者像这样传递偏移量:
CREATE PROCEDURE MySp
@offset as int
AS
BEGIN
SET NOCOUNT ON;
Select * From MyView
Order by LastUpdatedDate Desc
Offset @offset Rows Fetch Next 14 Rows Only
END
,在本例中这样调用它来获取第二页:
DECLARE @return_value int
EXEC @return_value = [dbo].[MySp]
@offset = 14
SELECT 'Return Value' = @return_value