【问题标题】:(PostgreSQL) actual record number in recordset(PostgreSQL) 记录集中的实际记录数
【发布时间】:2010-11-26 20:51:33
【问题描述】:

F 出于测试目的,我需要编写一个 SQL 查询,其中包含 实际记录号作为结果集中的列。如果我的 SELECT 得到 结果返回给我 10 条记录,我需要有一列 其中包含值 1-10。

有没有一种方法可以在没有存储过程游标的情况下实现这一点 我的数据?

我在 PostgreSQL 上需要这个。

【问题讨论】:

标签: sql postgresql


【解决方案1】:

如果您使用的是 8.4,则可以使用 window functions(确切地说是 row_number())。

如果您使用的是 8.4 之前的版本,您可以在我的 blog 上使用我不久前 described 的技术。

【讨论】:

    【解决方案2】:

    您可以对数据进行分区并获得 row_number()

    例如:

    SELECT FirstName, LastName, SalesYTD, PostalCode, 
           ROW_NUMBER() OVER(ORDER BY SalesYTD DESC) AS 'Row Number'
    FROM Sales.vSalesPerson
    WHERE TerritoryName IS NOT NULL AND SalesYTD <> 0;
    

    请参阅以下内容: ROW_NUMBER (Transact-SQL)

    【讨论】:

    • 这个解决方案的好处是它适用于任何按照 ISO SQL:2003 标准编写的 RDBMS。
    【解决方案3】:

    看看ROW_NUMBER()(SQL Server 2005 及更高版本)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-08
      • 2023-02-14
      • 2022-01-10
      • 1970-01-01
      • 2012-04-03
      • 1970-01-01
      • 1970-01-01
      • 2019-09-25
      相关资源
      最近更新 更多