问一个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其它的数据库可能有别的方案,不一而论。
参考技术ASQL 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查询,如何给查询结果加上序号的主要内容,如果未能解决你的问题,请参考以下文章