如何给记录加上序号

camy 2008-03-29 11:28:31
请问如何自动给查询结果的每条记录加上一个序号?
如:
1 .....
2 .....
3 .....
...全文
219 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ojuju10 2008-03-31
  • 打赏
  • 举报
回复

2005中的排名函数
ojuju10 2008-03-31
  • 打赏
  • 举报
回复

select *,Id=(row_number() over (order by id)) from tab

剑心永远OK 2008-03-31
  • 打赏
  • 举报
回复
插。。
wangxuelid 2008-03-31
  • 打赏
  • 举报
回复

select IDENTITY(int,1,1) as id,* into # from tb
select * from #
drop table #

hui_hui_2007 2008-03-31
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 happyflystone 的回复:]
2000 只能借助中间表和自增列

行号哪来的冲突, 肯定是从1开始 的呀

05就可以用row_number()实现
[/Quote]
2000下好象用临时表是一个比较好的办法。如果有主键,并且按主键排序,可以不用临时表,如下:

--为表增加序列号的方法:
create table #t
(
姓名 varchar(10) ,
语文 int
)

insert into #t(姓名 , 语文 ) values('张三',73)
insert into #t(姓名 , 语文 ) values('李四',99)
insert into #t(姓名 , 语文 ) values('王十',12)
insert into #t(姓名 , 语文 ) values('李三',34)
insert into #t(姓名 , 语文 ) values('赵六',56)
insert into #t(姓名 , 语文 ) values('目一',15)
insert into #t(姓名 , 语文 ) values('人人',100)
insert into #t(姓名 , 语文 ) values('我产',78)

select *
from #t


select (select count(1) from #t where 语文>=T.语文) as 名次,
T.*
from #t T
order by 语文 DESC
areswang 2008-03-30
  • 打赏
  • 举报
回复
select identity(int,1,1) first,fields
into #tmp
form tb
select *from #tmp
areswang 2008-03-30
  • 打赏
  • 举报
回复
以上不正确,只有当插入新表时才能用!
yyyyzzzz_2002 2008-03-30
  • 打赏
  • 举报
回复
4楼说的很正确,这是sql server2005的新增功能,请运行下列语句就知道了
请在sql server 2005下运行
select row_number() over(order by name) as id
,name
,type
from sys.objects with (nolock)
-晴天 2008-03-30
  • 打赏
  • 举报
回复
select IDENTITY(int,1,1) as id,* into #tb from tb
select * from #tb
drop table #tb
go
viva369 2008-03-30
  • 打赏
  • 举报
回复
select row_number() over(order by 排序字段) as first,fields form tb
fengyupeng 2008-03-30
  • 打赏
  • 举报
回复
5楼正解
camy 2008-03-30
  • 打赏
  • 举报
回复
请教7楼,我不清楚SP的执行过程,是象流水线一样还是可能同时响应多个进程并发执行?如果是后者,会不会出现同时对一个临时表进行操作,从而产生冲突?
-狙击手- 2008-03-30
  • 打赏
  • 举报
回复
2000 只能借助中间表和自增列

行号哪来的冲突, 肯定是从1开始 的呀

05就可以用row_number()实现
camy 2008-03-30
  • 打赏
  • 举报
回复
用临时表好像不太方便,如果在SP中返回查询结果,会不会发生混乱?
比如,进程A执行SP,返回结果集RA;
进程B执行SP,返回结果集RB。
如果都用临时表的方式来标记行号,会不会出现冲突?
areswang 2008-03-29
  • 打赏
  • 举报
回复
select indentity(int,1,1) as first,fields form tb

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧