SQL 中選擇第 n 行的跨資料庫策略
本文探討了從 SQL 表中檢索第 n 行的技術,提供了與各種資料庫系統相容的解決方案。
一般方法
SQL 標準缺乏執行此任務的直接命令。 然而,有幾種常見的方法:
ROW_NUMBER()
等視窗函數為每一行分配唯一的排名。 隨後,過濾結果集以檢索具有所需排名的行。 LIMIT
和 OFFSET
子句。 OFFSET
跳過指定數量的行,而 LIMIT
將輸出限制為一定數量的行。 特定於資料庫的實作
SQL Server:
<code class="language-sql">WITH RankedRows AS ( SELECT ROW_NUMBER() OVER (ORDER BY OrderID) AS RowNum, OrderID, OrderDate FROM Orders ) SELECT * FROM RankedRows WHERE RowNum = 1000000;</code>
MySQL / PostgreSQL:
<code class="language-sql">SELECT * FROM your_table LIMIT 1 OFFSET (n - 1);</code>
Oracle / DB2 / SQL Server(替代):
<code class="language-sql">SELECT * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY key ASC) AS rn, columns FROM tablename ) AS ranked_rows WHERE rn = n;</code>
PostgreSQL 8.4 / SQLite 3.25.0 :
<code class="language-sql">SELECT * FROM your_table OFFSET (n - 1) ROWS FETCH FIRST 1 ROW ONLY;</code>
這提供瞭如何跨多個資料庫系統有效選擇第 n 行的全面概述。 請記得將 your_table
、key
、columns
和 n
等佔位符替換為實際的表名稱和列名稱以及所需的行號。
以上是如何跨不同資料庫系統從 SQL 表中選擇第 n 行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!