sql结果集记录编号?

时间:2010-10-21 16:06:31

标签: sql sql-server sql-server-2005 tsql

我想对结果集中的行进行编号。我想要一些方法我可以有一个3个记录的结果集使用一些SQL关键字生成一个列,读取1,2,3用于记录记录......

我知道我可以创建一个带有自动增量列的临时表,但我想知道是否有一种方法可以从SQL查询中获取此信息?

SELECT row_count, 
       project_name, 
       project_id 
  FROM Project 

我梦寐以求的“row_count”之类的东西?

2 个答案:

答案 0 :(得分:5)

SELECT 0排序会为您提供一个递增列,并保存可能不必要的排序。

SELECT ROW_NUMBER() over (order by (select 0)) as row_count, 
       project_name, 
       project_id 
  FROM Project 

答案 1 :(得分:2)

听起来像是ROW_NUMBERanalytic/ranking function。但目前还不清楚你想要以编号为基础 - 这假定为project_id,从最小值开始:

SELECT ROW_NUMBER() OVER(ORDER BY p.project_id) AS row_count,
       p.project_name,
       p.project_id
  FROM PROJECT p
相关问题