sql 如何添加序号
时间:2011-12-08
来源:互联网
单号 条码 送修时间 维修完成时间
1 A 2011-10-9 2011-10-10
2 A 2011-10-15 2011-10-31
3 A 2011-12-16 2011-12-30
4 B 2011-9-10 2011-9-15
5 B 2011-11-10 2011-11-20
6 C 2011-12-1 2011-12-3
7 C 2011-12-5 2011-12-6
效果如下:
序号 单号 条码 送修时间 维修完成时间
1 1 A 2011-10-9 2011-10-10
2 2 A 2011-10-15 2011-10-31
3 3 A 2011-12-16 2011-12-30
1 4 B 2011-9-10 2011-9-15
2 5 B 2011-11-10 2011-11-20
1 6 C 2011-12-1 2011-12-3
2 7 C 2011-12-5 2011-12-6
用sql如何添加序号??请教各位大虾,在此十分感谢
作者: so_fantasy 发布时间: 2011-12-08
;with cte as (序号=row_number()over(partition by 条码 order by 单号),* from A) select * from cte
作者: koumingjie 发布时间: 2011-12-08
;with cte as (序号=row_number()over(partition by 条码 order by 单号),* from A) select * from cte
作者: koumingjie 发布时间: 2011-12-08
05时用1楼方法
SQL2000可用
SQL code
select ID=(select count(1) from A where 条码=t.条码 and 单号<=t.单号) ,* from A as t
作者: roy_88 发布时间: 2011-12-08
--> --> (Roy)生成測試數據 if not object_id('Tempdb..#T') is null drop table #T Go Create table #T([单号] int,[条码] nvarchar(1),[送修时间] Datetime,[维修完成时间] Datetime) Insert #T select 1,N'A','2011-10-9','2011-10-10' union all select 2,N'A','2011-10-15','2011-10-31' union all select 3,N'A','2011-12-16','2011-12-30' union all select 4,N'B','2011-9-10','2011-9-15' union all select 5,N'B','2011-11-10','2011-11-20' union all select 6,N'C','2011-12-1','2011-12-3' union all select 7,N'C','2011-12-5','2011-12-6' Go select ID=(select count(1) from #T where 条码=t.条码 and 单号<=t.单号) ,* from #T as t --sql2005用 select ID=row_number()over(partition by 条码 order by 单号),* from #T /* ID 单号 条码 送修时间 维修完成时间 1 1 A 2011-10-09 00:00:00.000 2011-10-10 00:00:00.000 2 2 A 2011-10-15 00:00:00.000 2011-10-31 00:00:00.000 3 3 A 2011-12-16 00:00:00.000 2011-12-30 00:00:00.000 1 4 B 2011-09-10 00:00:00.000 2011-09-15 00:00:00.000 2 5 B 2011-11-10 00:00:00.000 2011-11-20 00:00:00.000 1 6 C 2011-12-01 00:00:00.000 2011-12-03 00:00:00.000 2 7 C 2011-12-05 00:00:00.000 2011-12-06 00:00:00.000 */
作者: roy_88 发布时间: 2011-12-08
呵呵,我忘了我是不用序号来解的.
SQL code
create table tb(单号 int,条码 varchar(10),送修时间 datetime,维修完成时间 datetime) insert into tb select 1,'A','2011-10-9','2011-10-10' insert into tb select 2,'A','2011-10-15','2011-10-31' insert into tb select 3,'A','2011-12-16','2011-12-30' insert into tb select 4,'B','2011-9-10','2011-9-15' insert into tb select 5,'B','2011-11-10','2011-11-20' insert into tb select 6,'C','2011-12-1','2011-12-3' insert into tb select 7,'C','2011-12-5','2011-12-6' go select row_number()over(partition by 条码 order by 送修时间)序号,* from tb /* 序号 单号 条码 送修时间 维修完成时间 -------------------- ----------- ---------- ----------------------- ----------------------- 1 1 A 2011-10-09 00:00:00.000 2011-10-10 00:00:00.000 2 2 A 2011-10-15 00:00:00.000 2011-10-31 00:00:00.000 3 3 A 2011-12-16 00:00:00.000 2011-12-30 00:00:00.000 1 4 B 2011-09-10 00:00:00.000 2011-09-15 00:00:00.000 2 5 B 2011-11-10 00:00:00.000 2011-11-20 00:00:00.000 1 6 C 2011-12-01 00:00:00.000 2011-12-03 00:00:00.000 2 7 C 2011-12-05 00:00:00.000 2011-12-06 00:00:00.000 (7 行受影响) */ go drop table tb
不过,上帖的要求,用序号解还是有点问题的.
作者: qianjin036a 发布时间: 2011-12-08
新增列时 --> --> (Roy)生成測試數據 if not object_id('Tempdb..#T') is null drop table #T Go Create table #T([单号] int,[条码] nvarchar(1),[送修时间] Datetime,[维修完成时间] Datetime) Insert #T select 1,N'A','2011-10-9','2011-10-10' union all select 2,N'A','2011-10-15','2011-10-31' union all select 3,N'A','2011-12-16','2011-12-30' union all select 4,N'B','2011-9-10','2011-9-15' union all select 5,N'B','2011-11-10','2011-11-20' union all select 6,N'C','2011-12-1','2011-12-3' union all select 7,N'C','2011-12-5','2011-12-6' Go alter table #T add 序号 int go update t set 序号=(select count(1) from #T where 条码=t.条码 and 单号<=t.单号) from #T as t --sql2005用 update t set 序号=ID from (select ID=row_number()over(partition by 条码 order by 单号),* from #T)t /* ID 单号 条码 送修时间 维修完成时间 1 1 A 2011-10-09 00:00:00.000 2011-10-10 00:00:00.000 2 2 A 2011-10-15 00:00:00.000 2011-10-31 00:00:00.000 3 3 A 2011-12-16 00:00:00.000 2011-12-30 00:00:00.000 1 4 B 2011-09-10 00:00:00.000 2011-09-15 00:00:00.000 2 5 B 2011-11-10 00:00:00.000 2011-11-20 00:00:00.000 1 6 C 2011-12-01 00:00:00.000 2011-12-03 00:00:00.000 2 7 C 2011-12-05 00:00:00.000 2011-12-06 00:00:00.000 */
作者: roy_88 发布时间: 2011-12-08
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28