Offset Fetch next子句可以应用于SQL视图吗?



我已经创建了一个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

最新更新