sql 查询语句自动增加序号

数据表中有一列字段 “avge”,现在要查询出字段并加上序号。这sql如何写 数据库是sql2000的

在线等。。
序号 avge
1 14
2 16
3 18
4 20

增加一个序号看起来清楚一些。

现有两种方法解决,供参考:
1、SELECT IDENTITY(INT,1,1) AS 序号, avge FROM Table1
2、SELECT IDENTITY(INT,1,1) AS 序号, avge INTO #temp1 FROM Table1
SELECT * FROM #temp1
DROP TABLE #temp1

给查询出的SQL记录添加序号列,解决方法有以下两种 
第一:

select ROW_NUMBER() OVER (ORDER BY a.字段 ASC) AS XUHAO,a.* from table a1

(table 为表名,字段为表a中的字段名) 
第二:

select RANK()  OVER (ORDER BY a.字段 ASC) AS XUHAO,a.* from table a1

(table 为表名,字段为表a中的字段名)

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
.使用临时表实现
SQL的IDENTITY函数可以提供自增的序号,但只能用在带有INTO table子句的SELECT语句中,所以如果可以使用临时表的情况下可以使用这种实现方法。
eg:
SELECT IDENTITY(INT,1,1) as seq,field1,field2,...,fieldn INTO tmpTableName FROM srcTableName;
SELECT * FROM tmpTableName;
DROP TABLE tmpTableName;本回答被网友采纳
第2个回答  2012-07-31
SELECT ROW_NUMBER() OVER (ORDER BY NEWID()) AS 序号,avge
第3个回答  2012-07-31
select IDENTITY(int,1,1) as id,avge into #1 from xxx;
select * from #1;
第4个回答  2012-07-31
加什么序号你给个例子啊
select identity(int,1,1) as 序号,avge from table追问

不对,仅当 报错:仅当 SELECT 语句中有 INTO 子句时,才能使用 IDENTITY 函数。

追答

那只有用临时表了,麻烦点,如果你是2005的可以用row_number()函数

select identity(int,1,1) as 序号,avge into #t from table
select * from #t

相似回答