我发现 SQL Server 2012 中分页的最佳方法是 OFFSET FETCH Clause
SELECT First Name + ' ' + Last Name
FROM Employees
ORDER BY First Name OFFSET 10 ROWS;
效果很好。
现在就我而言,我的软件动态生成 SQL Server 表,我只知道表名称。
我不知道动态生成的表中的列名称。
现在在这种情况下,分页是如何工作的?因为我不知道哪一列应该与带有 OFFSET Fetch 子句的 ORDER BY
子句一起使用..
还有其他解决方案吗?
谢谢
最佳答案
如果有帮助,您可以按列索引排序:
SELECT First Name + ' ' + Last Name
FROM Employees
ORDER BY 1 OFFSET 10 ROWS;
这将按第一列排序。如果排序列存储在 UI 上(由用户控制),则需要将列索引存储在 UI 上并将其传递给 SQL Server 以在排序中使用。
如果您只想按记录添加到表中的顺序进行排序,则需要主键、标识列。确保这是表格中的第一列并使用 ORDER BY 1
。
关于SQL Server 2012 - 没有 Order 子句的分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27247463/