首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求1sql语句,加序号

2013-04-26 
求一sql语句,加序号表 T1列FID(自增列),FBH(编号),FMC(名称)2001测试110001测试1A5002鞋子11002鞋子2号210

求一sql语句,加序号
表 T1

FID(自增列),FBH(编号),FMC(名称)
2           001       测试1
10          001       测试1A
5           002       鞋子
11          002       鞋子2号
21          002       鞋子3号

现在看这个数据 想增加一列 序号 实现下面 这种效果

FID(自增列),FBH(编号),FMC(名称)  序号
2           001       测试1      1
10          001       测试1A     2
5           002       鞋子        1
11          002       鞋子2号     2
21          002       鞋子3号     3
 
先不考虑表设计的好坏,现在只想解决这个问题。
主键是 FID  自增列
[解决办法]
select *,row_number() over(partition by FBH order by FBH)序号 from T1
[解决办法]


create table T1
(FID int,FBH int,FMC varchar(10))

insert into T1
select 2, 001, '测试1' union all
select 10, 001, '测试1A' union all
select 5, 002, '鞋子' union all
select 11, 002, '鞋子2号' union all
select 21, 002, '鞋子3号'


select FID,
       FBH,
       FMC,
       row_number() over(partition by FBH order by FID) '序号'
from T1

/*
FID         FBH         FMC        序号
----------- ----------- ---------- ----------
2           1           测试1        1
10          1           测试1A       2
5           2           鞋子          1
11          2           鞋子2号       2
21          2           鞋子3号       3

(5 row(s) affected)
*/

------解决方案--------------------


select FID(自增列),FBH(编号),FMC(名称),row_number()over(partition by FBH(编号) order by fid)序号
from t1

[解决办法]

create table T1
 (FID int ,FBH varchar(20),FMC varchar(20))

 insert into T1
select 2  ,         '001',       '测试1' union all
select 10  ,        '001',       '测试1A' union all
select 5  ,         '002',       '鞋子' union all
select 11  ,        '002',       '鞋子2号'union all
select 21  ,        '002',       '鞋子3号'

select *,ROW_NUMBER()over(partition by FBH order by FID)id from T1

FID         FBH                  FMC                  id
----------- -------------------- -------------------- --------------------
2           001                  测试1                  1
10          001                  测试1A                 2
5           002                  鞋子                   1
11          002                  鞋子2号                 2
21          002                  鞋子3号                 3

(5 行受影响)

[解决办法]
select *,row_number()over(partition by fbh order by fid)n from tb

热点排行