在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#