问一个sql查询,如何给查询结果加上序号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了问一个sql查询,如何给查询结果加上序号相关的知识,希望对你有一定的参考价值。

SQL Server 下

SELECT ROW_NUMBER()  OVER(ORDER BY ID) ROWNU,A1 FROM TA1

解说:在这里,TA1是一个表,A1是表中的一个字段,表的另一个字段为ID本用于自增这儿用来排序。

SQL Server 中的 ROW_NUMBER() 得到一个查询出的顺序,但这个函数要求给出一个查的排序方案,因为SQL Server的存储是无关顺序的。


在Oracle里,本就有rownum。可直接用:

SELECT rownum,A1 FROM TA1

其它的数据库可能有别的方案,不一而论。

参考技术A

SQL Server 下

1、SELECT ROW_NUMBER()  OVER(ORDER BY ID) ROWNU,A1 FROM TA1

解说:在这里,TA1是一个表,A1是表中的一个字段,表的另一个字段为ID本用于自增这儿用来排序。

SQL Server 中的 ROW_NUMBER() 得到一个查询出的顺序,但这个函数要求给出一个查的排序方案,因为SQL Server的存储是无关顺序的。

在Oracle里,本就有rownum。可直接用:

1、SELECT rownum,A1 FROM TA1

其它的数据库可能有别的方案,不一而论。

参考资料

百度.百度[引用时间2018-1-4]

参考技术B oracle 有rownum 其它数据我不清楚

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中的字段名)

参考技术A .使用临时表实现
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;
参考技术B SELECT ROW_NUMBER() OVER (ORDER BY NEWID()) AS 序号,avge 参考技术C select IDENTITY(int,1,1) as id,avge into #1 from xxx;
select * from #1;
参考技术D 加什么序号你给个例子啊
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

以上是关于问一个sql查询,如何给查询结果加上序号的主要内容,如果未能解决你的问题,请参考以下文章

sql语句里如何实现给查询记录添加自然序号?

如何让SELECT 查询结果额外增加自动递增序号sqlserver

sql 查询语句自动增加序号

PHP+MYSQL查询结果上加一个排名序号且分页不间断

sql中使用distinct加上排序怎么查询?

sql查询员工编号为2001的员工所下的订单编号、内容及员工姓名信息