- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在处理自定义 DAL,现在正在处理自动结果分页。 DAL 根据我们的模型生成动态查询,例如:
Model.All() --> generates "select * from mytable"
Model.Filter ("d=@0", "arg0value") --> generates "select * from mytable where d=@0"
...
我不想向我们的过滤器函数添加额外的参数,也不想为分页添加专门的函数(当然,如果可以避免的话)。相反,我想在执行查询之前对更改查询的结果进行分页。。像...
var resultset = Model.Filter ("d=@0, "arg0value"); // "select * from mytable where d=@0"
resulset = resultset.Paginate (1, 25); // this should paginate the query before loading any objects
在 Oracle 中很容易,使用 ROWNUM 伪列并包装旧查询。
select * from (my old sql) where rownum between 20 and 40
在 Sql Server (2005) 中,没有任何类似 ROWNUM 的东西。我看到有 ROW_NUMBER 函数,但它需要了解查询的内部结构,因为您需要传递一个“OVER (ORDER BY xxxx)”子句。
select row_number() over (order By <?????>) as rownum, dv.* from (my old sql) as dv where rownum between 20 and 40
那么,有没有办法在不向我们的模型添加特定参数/函数的情况下在 Sql Server 中执行此操作?
谢谢!
编辑
正如@Dems 所说,我可以解析查询并根据输出字段添加 ORDER BY,但是:首先,我不想要解析的开销,其次,如果查询的类型为“select * ",我无法提取字段。
最佳答案
如果您正在编写自己的数据访问层,并且您只想应用 ROW_NUMBER() 知道查询的输出字段名称(而不是它的内部名称)...
SELECT
*
FROM
(
SELECT
ROW_NUMBER() OVER (ORDER BY field1, field2, field3) AS row_id,
*
FROM
(
<your-query>
)
AS unordered_data
)
AS ordered_data
WHERE
row_id BETWEEN x AND y
关于sql - 我可以在不使用 ROW_NUM () OVER (ORDER BY xxxxx) 的情况下对 Sql Server 中的查询进行分页吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8588251/
我正在运行以下查询并收到以下错误 - MySQL Database Error: You have an error in your SQL syntax; check the manual that
我在 ORACLE 中使用条件之间,以实现分页。我将按降序对 CNT 列上的数据进行排序,以首先显示计数最多的值。 我得到不同的行顺序,正常顺序和行号顺序。 下面是我的数据集: PATTERN_TBL
我试图将两个不连续的列放入一个二维数组中,所以: 源范围如下所示: a 1 apple b 2 banana c 3 pear d 4 orange e 5 grape 我希望我的数组看起来像这样:
我在我的 Java 应用程序中使用 H2 数据库。好像不支持rank()和 row_num()功能,因为他们仍然在他们的 roadmap list 这是我试图执行的查询 select * from (
我的数据库中有这张表,其架构如下: nearbystops(nearbystopname, latitude, longitude, mainaddress),我做了如下查询 SELECT n
这是 http://sql-ex.ru 上的第 105 个问题 这是数据库架构: 问题:统计员 Alice、Betty、Carol 和 Diana 正在对 Product 表中的行进行编号。最初,他们
我正在处理自定义 DAL,现在正在处理自动结果分页。 DAL 根据我们的模型生成动态查询,例如: Model.All() --> generates "select * from mytable" M
我是一名优秀的程序员,十分优秀!