从数据库表中提取第 n 行是数据操作和分析中的常见任务。 虽然每个数据库系统都有自己的方法,但使用与数据库无关的方法可以提供更大的灵活性和可移植性。
标准方法:窗口函数
SQL 标准合并了窗口函数,可以跨有序表行进行计算。 ROW_NUMBER()
函数为每一行分配一个唯一的编号,允许您筛选所需的第 n 行。
<code class="language-sql">SELECT * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY <column_name>) AS rownumber, <other_columns> FROM <table_name> ) AS ranked_rows WHERE rownumber = <n>;</code>
特定于数据库的替代方案
如果您的数据库不支持窗口函数,请考虑以下特定于数据库的选项:
LIMIT
和 OFFSET
子句:<code class="language-sql">SELECT * FROM <table_name> LIMIT 1 OFFSET <n>;</code>
ROW_NUMBER()
函数:<code class="language-sql">WITH NumberedRows AS ( SELECT ROW_NUMBER() OVER (ORDER BY <column_name>) AS RowNumber, <other_columns> FROM <table_name> ) SELECT * FROM NumberedRows WHERE RowNumber = <n>;</code>
延伸阅读
以上是如何使用与数据库无关的方法从数据库表中选择第 n 行?的详细内容。更多信息请关注PHP中文网其他相关文章!