在 Microsoft SQL Server 2000 中复制 MySQL 的 LIMIT
MySQL 的 LIMIT
子句简化了特定行子集的检索。 SQL Server 2000 直接缺乏此功能,因此需要解决方法。 本文探讨了实现类似结果的几种方法。
一种方法使用嵌套的 SELECT
语句。 要模仿 LIMIT 10, 20
(偏移 10,获取 20),您可以使用:
<code class="language-sql">SELECT TOP 20 * FROM ( SELECT TOP 30 * FROM mytable ORDER BY somecolumn ) z2 ORDER BY somecolumn DESC;</code>
这将选择前 30 行,然后从该子集中选择前 20 行。
或者,如果存在唯一列(例如“key”),您可以使用:
<code class="language-sql">SELECT TOP 20 * FROM tablename WHERE key NOT IN ( SELECT TOP 10 key FROM tablename ORDER BY key );</code>
这会根据唯一键排除前 10 行,从而有效返回接下来的 20 行。
限制:如果总行数不是页面大小的倍数,则嵌套查询方法对于最后一个“页面”可能会出现问题。独特柱方法需要合适的独特柱。 在 SQL Server 2000 中复制 LIMIT
的纯粹基于 SQL 的普遍适用的解决方案是不可行的。 然而,这些技术提供了实用的替代方案。
以上是如何在 Microsoft SQL Server 2000 中模拟 MySQL 的 LIMIT 子句?的详细内容。更多信息请关注PHP中文网其他相关文章!