從 SQL 表擷取第 n 行
本指南示範如何從 SQL 資料庫表中選擇第 n 行,涵蓋與資料庫無關的方法和特定於資料庫的方法。
通用方法
雖然 SQL 標準提供行選擇功能,但許多資料庫系統以不同的方式實現它們。可靠的跨資料庫方法採用 ROW_NUMBER()
分析函數的子查詢:
<code class="language-sql">WITH OrderedRows AS ( SELECT ROW_NUMBER() OVER (ORDER BY OrderID) AS RowNum, OrderID, OrderDate FROM Orders ) SELECT * FROM OrderedRows WHERE RowNum = n</code>
將 n
替換為所需的行號,將 OrderID
替換為您的主鍵或排序列,將 Orders
替換為您的表名稱。
特定於資料庫的技術
PostgreSQL 與 MySQL:
這些資料庫使用 OFFSET
和 LIMIT
子句(請注意,這是一種非標準方法):
<code class="language-sql">SELECT * FROM your_table LIMIT 1 OFFSET n-1;</code>
這裡使用n-1
,因為OFFSET
從0開始計數。
Oracle、DB2 與 MSSQL:
這些系統支援標準視窗函數:
<code class="language-sql">SELECT * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY key_column ASC) AS rn, * FROM your_table ) AS numbered_rows WHERE rn = n;</code>
將 key_column
替換為您的主鍵或排序列,將 your_table
替換為您的表名稱,將 n
替換為所需的行號。
PostgreSQL 與 SQLite 更新:
PostgreSQL 8.4 及更高版本和 SQLite 3.25.0 及更高版本都支援標準視窗函數,使得上述通用方法完全相容。
以上是如何從 SQL 資料庫表中選擇第 n 行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!