如何在不使用 ROW_NUMBER() 的情況下模擬 Microsoft SQL Server 2000 中的 LIMIT 子句?
Jan 08, 2025 am 07:14 AM舊版 Microsoft SQL Server 版本中 LIMIT 子句的解決方法
Microsoft SQL Server 2000 缺少 ROW_NUMBER()
函數,因此很難複製 MySQL 等資料庫中的 LIMIT
子句功能。 有幾種方法,每種方法都有缺點。
使用 TOP
的巢狀查詢是一種常見的方法。 但是,當所需範圍超過總行數時,此方法會失敗,導致分頁錯誤,尤其是在最終「頁面」上。
另一種技術依賴表中的唯一欄位。 這本質上是有限的,因為它取決於合適的唯一標識符的存在。
對於 SQL Server 2005 及更高版本,EXCEPT
語句提供了更強大的解決方案。這涉及將巢狀查詢與 EXCEPT
運算子結合以過濾掉初始行,從而有效地獲得所需的子集。
說明範例:檢索第 50 行到 75 行:
SELECT * FROM ( SELECT TOP 75 COL1, COL2 FROM MYTABLE ORDER BY COL3 ) AS foo EXCEPT SELECT * FROM ( SELECT TOP 50 COL1, COL2 FROM MYTABLE ORDER BY COL3 ) AS bar;
登入後複製
總而言之,雖然在 SQL Server 2000 中存在模仿 LIMIT
的變通方法,但沒有一個可以在不妥協或不依賴其他功能的情況下完美複製其行為。 對於支援 ROW_NUMBER()
的版本(SQL Server 2005 及更高版本),建議使用函數,也是最有效的方法。
以上是如何在不使用 ROW_NUMBER() 的情況下模擬 Microsoft SQL Server 2000 中的 LIMIT 子句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器)

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼?
