为了测试目的,我需要编写一个包含的SQL查询 实际记录号作为结果集中的列。如果我的SELECT得到了 结果我记录了10条记录,我需要有一列 其中包含值1-10。
有没有办法在没有存储过程的情况下实现此目的 我的数据?
我需要在PostgreSQL上使用它。
答案 0 :(得分:7)
您可以对数据进行分区并获取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)
答案 1 :(得分:5)
查看ROW_NUMBER()(SQL Server 2005及更高版本)
答案 2 :(得分:2)
如果您使用的是8.4,则可以使用window functions(确切地说是row_number())。