[2 [2
有效檢索數據的子集(分頁的一個關鍵方面)需要能夠抵消結果的能力。 與許多其他數據庫系統不同,SQL Server不在本地支持偏移子句。
問題:缺乏本機偏移
考慮一個常見的方案:從表中檢索51至75行。 其他數據庫中使用的直接方法: 選擇 *從mytable offset 50 limit 25
在SQL Server中不可用。 這需要找到替代方法以從特定偏移量開始的情況下檢索數據,而無需處理所有前行。
SQL Server(2005及以後)的解決方案:SQL Server 2005及更高版本可以利用派生的表和 row_number()
function:選擇COL1,COL2 從 ( 選擇col1,col2,row_number()over(iD訂購)作為rownum 來自mytable )作為MyDerivedT的 @Startrow和@endrow;
SELECT * FROM MyTable OFFSET 50 LIMIT 25
在SQL Server 2000中處理行偏移更為複雜。 有關詳細的教程和方法,請參閱外部資源。 這些通常涉及創建和管理臨時表以實現分頁。 [2
最佳性能:指定列:
利用索引:在訂購列上適當的索引(示例中的在示例中)急劇提高查詢速度。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3