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

表a,数据:
id name
12 张三
13 李四
15 王五

想通过一条sql语句(mysql和sqlite里)实现获取这三条记录(假设该表不只有这三条记录),并且给每行前面加上从1开始的序号,变成
1 12 张三
2 13 李四
3 14 王五

请教

通过rownum实现即可。
sql:select rownum , * from tablename where 条件语句。
解释:rownum是隐藏的,查询结果默认从1开始编号,所以肯定会是自然编号的,有多少条,编号就到多少。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-05
select Row_NUMBER() OVER (ORDER BY a.id ASC)AS 序号,a.* from table a

或者:
select RANK() OVER (ORDER BY a.id ASC )AS 序号,a.* from table a

table写表名。追问

不行,在mysql 查询里运行不过,请问这是哪个数据库的语法?我希望是mysql或者sqlite的

追答

SQL Server 2008

追问

求mysql 或sqlite的语句,谢谢

第2个回答  推荐于2018-02-23
SELECT @rownum:=@rownum+1 AS rownum, a.*
FROM (SELECT @rownum:=0) r, a;本回答被网友采纳
第3个回答  2012-12-18
select (@rowNO := @rowNo+1) AS rowno,username,cardnum from (SELECT username,cardnum FROM t_consumer where 1=1) a,(select @rowNO :=0) b

参考资料:http://blog.csdn.net/macwhirr123/article/details/7489484

第4个回答  2012-11-07
添加字段,使用自动增长追问

中间删除某行数据,但是最后select出来的还要求是 1,2,3顺序数字。
你想的太简单了。

sql 查询语句自动增加序号
给查询出的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 为表名,字段为...

sql2008 关于查询数据时,添加一个自增序列号的列的问题
第一个办法:用ROW_NUMBER() OVER(ORDER BY 你原来排序的方式 );第二个方法:增加一同值的列,用来order by,例如:select row_number()over(order by orderid),t1.* from (select 1 as orderid,t.* from 表 t)t1;第三个办法:使用Identity+临时表,例如:select Identity(int,1,1),t.* I...

问一个sql查询,如何给查询结果加上序号
SELECT ROW_NUMBER() OVER(ORDER BY ID) ROWNU,A1 FROM TA1解说:在这里,TA1是一个表,A1是表中的一个字段,表的另一个字段为ID本用于自增这儿用来排序。SQL Server 中的 ROW_NUMBER() 得到一个查询出的顺序,但这个函数要求给出一个查的排序方案,因为SQL Server的存储是无关顺序的。在O...

函数编写 SQL 如何给记录加序号
一、需要用临时表来实现 select IDENTITY(int, 1,1) AS ID_Num,* into #temp from 表 select * from #temp Drop Table #temp 二、不用临时表,就必须有排序列,值唯一,做参考:select (select count(*) from yourtable where col <...

使用SQL语句向表插入一条学生记录:(其中学号的值为自动编号)如何实现...
insert into语句可以有两种编写形式:1、无需指定要插入数据的列名,只需提供被插入的值即可:insert into table_name values (value1,value2,value3,...);2、需要指定列名及被插入的值:insert into table_name (column1,column2,column3,...)values (value1,value2,value3,...);...

SQL Server 2008怎样添加自增列实现自增序号
一、通过T-SQL代码.alter table 表名 add 列名 int IDENTITY(1,1) NOT NULL 这里用到了identity关键字:indentity(a,b),a b均为正整数,a表示开始数,b表示步长,indentity(1,1)就代表从1开始,每次增加1

...新表中的时候添加一个自动增长列么 SQL语句怎么写
假设表有主键ID列,以下生成比原表多一个序号列并按ID号大小填充的新表。select 序号=(select count(1) from tablename a where a.id>=tablename.id),* from tablename

如何让SELECT 查询结果额外增加自动递增序号sqlserver
\/* 方法一*\/ SELECT 序号= (SELECT COUNT(客户编号) FROM 客户 AS LiMing WHERE LiMing.客户编号<= Chang.客户编号), 客户编号,公司名称 FROM 客户 AS Chang ORDER BY 1;GO \/* 方法二: 使用SQL Server 2005 独有的RANK() OVER () 语法*\/ SELECT RANK() OVER (ORDER BY 客户编号 DESC) ...

sql 语句 对同组数据自动编号
不知道你用的是什么数据库,ORACLE 8i 后版本可以用函数实现 先假设你的表名为 T ,栏位为 num 语句如下:select row_number() over(order by num asc) 序号,num from t

sql语句 如何添加自增长主键
第一步:创建sequence;create sequence test_seq increment by 1 start with 4 maxvalue 1800 minvalue 4 cache 4;解释:创建名为test_seq的sequence,从4开始,每次增加1,最大值是1800,最小值是4,cache 4 表示会缓存四个序列号,比如4、 5、 6、 7。第二步:sql语句插入,每次插入一次就会...

相似回答