在SQL Server中分页问题

我已经在SQL Server中搜索分页。 我发现大部分解决方案都是这样的

在SQL Server中分页结果的最佳方式是什么?

但它不符合我的期望。

这是我的情况:

我在JasperReport上工作,为此:为了导出我只需要将任何Select查询传递到模板中的报告,它会自动生成报告

EX:我有这样的选择查询:

Select * from table A

我不知道表A中的任何列名,所以我不能使用

Select ROW_NUMBER() Over (Order By columsName)

而且我也不想让它按任何列排序。

任何人都可以帮我做到这一点?

PS:在Oracle中,rownum在这种情况下非常有用。

Select * from tableA where rownum > 100 and rownum <200

与Oracle进行分页


您应该使用ORDER BY来使用ROW_NUMBER - 因为如果没有ORDER BY ,行的返回方式就没有确定性。 您可以运行相同的查询三次,并以三种不同的顺序返回结果。 特别是如果旋转扫描发挥作用。

因此,除非您希望报表能够向多个页面上的用户显示相同的行,否则某些行不会显示在任何页面上,您需要找到一种方法来对结果集进行排序以使其具有确定性。


从我的观点来看,你可以使用sql查询来找出表中有多少列,然后找出一个适合'order by'依赖的列。 如何摆脱表的列的脚本指的是:如何从SQL Server的表中获取列名?


看看这个链接

http://msdn.microsoft.com/en-us/library/ms186734.aspx

SQL Server具有类似的功能ROW_NUMBER。 虽然它表现有点不同。

SQL Server不保证行顺序,除非您已经按顺序指定了一列。 我会建议你给一个具有独特价值的条款。

链接地址: http://www.djcxy.com/p/93853.html

上一篇: Paging in SQL Server problems

下一篇: How do I validate an SQL query before executing it using C#