作为开发网站并使用过一些 SQL Server 的人,SQL Server 应该支持一个简单的子句来指示结果应该只包含特定范围的行,这对我来说似乎是轻而易举的事。例如,第 30 行到第 39 行。
就目前而言,在 SQL Server 中实现分页实际上有点超出许多 Web 开发人员的能力,因为他们的主要关注点不是 SQL。
此外,它将极大地简化由于连接和其他条件而可能已经很复杂的查询。
最重要的是,我认为这样的条款可能随着时间的推移更有可能在内部得到优化,因为逻辑将完全在微软的控制之下。
前段时间我在另一个论坛上提出了这个问题,许多回复似乎都表明这是不可取的。
鉴于任何现有的分页技术都将保持不变,有什么可能的原因不添加这样的条款?这对像我这样的人来说会好得多。
谁能说出微软没有这样做的充分理由?
Microsoft 已通过代号为“Denali”的下一版本 SQL Server 以及 SQL CE 4 实现了这一点。在此处查看 ORDER BY 子句的 OFFSET 和 FETCH 部分:http: //msdn.microsoft.com/en- us/library/ms188385(v=sql.110).aspx
此时SET ROWCOUNT、TOP()和ROW_NUMBER()可以帮助你:)
这是来自 SO 的一些示例