在 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中文網其他相關文章!