【问题标题】:How to get number of records in SQL如何在 SQL 中获取记录数
【发布时间】:2012-03-21 00:11:40
【问题描述】:

我在表中有 25 条 Lacs 记录,我如何在 sql Server 2008 中获得 10 条 lacs 之后的前 10 条 lacs 记录以及之后的 5 条 lacs 记录。

你能帮我解决这个问题吗?

在 PL SQL 中我喜欢这样

SELECT * FROM temp WHERE rownum > or rownum < 10

请提出建议。

【问题讨论】:

标签: sql sql-server oracle sql-server-2008 sql-server-2005


【解决方案1】:

这取决于您使用的数据库。

对于Oracle,您可以使用

SELECT * FROM(
   SELECT ROW_NUMBER() OVER (ORDER BY [tableId]) AS RowNr, * FROM MyTable 
) AS T
WHERE T.RowNr BETWEEN 6 AND 15

另见讨论: LIMIT / OFFSET in Oracle 11G

对于MYSQL,您可以使用

SELECT * FROM tbl LIMIT 5,10;  # Retrieve rows 6-15

【讨论】:

  • 关键字PL/SQL和ROWNUM只能是Oracle
【解决方案2】:
SELECT * FROM 
(
SELECT ROW_NUMBER() OVER (ORDER BY [dataKeyColumnName]) AS RowNo, * FROM Temp 
) AS A
WHERE A.RowNo BETWEEN 10 AND 15

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-23
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多