求助:分组连续编制流水号?
我有一张表,表结构及数据信息如下:
ID BH RS
1 13 12
2 13 20
3 13 5
要求结果如下表,主要是JG字段例:
ID BH RS JG
1 13 12 1
1 13 12 2
............
1 13 12 12
2 13 20 13//注意这行
2 13 20 14
.............
2 13 20 32
3 13 5 33//注意这行
3 13 5 34
3 13 5 35
3 13 5 36
3 13 5 37
主要是想用SQL语句实现,不用游标或循环。
谢谢!
[解决办法]
row_number 就可以了吧
[解决办法]
- SQL code
create table tb(ID int,BH int,RS int)insert into tb select 1,13,12 union select 2,13,20 union select 3,13,5 select a.*,JG=row_number() over(order by id) from tb a,master..spt_values where type='P' and a.RS>number/*ID BH RS JG----------- ----------- ----------- -------1 13 12 11 13 12 21 13 12 31 13 12 41 13 12 5.......
[解决办法]
[解决办法]
- SQL code
--> 测试数据:[tb]IF OBJECT_ID('[tb]') IS NOT NULL DROP TABLE [tb]GO CREATE TABLE [tb]([ID] INT,[BH] INT,[RS] INT)INSERT [tb]SELECT 1,13,12 UNION ALLSELECT 2,13,20 UNION ALLSELECT 3,13,5--------------开始查询--------------------------SELECT a.*,ROW_NUMBER() OVER(ORDER BY GETDATE()) FROM [tb] AS a OUTER APPLY ( SELECT number FROM master..spt_values WHERE type='p' AND number< [RS] ) AS opit----------------结果----------------------------/* ID BH RS (无列名)1 13 12 11 13 12 21 13 12 31 13 12 41 13 12 51 13 12 61 13 12 71 13 12 81 13 12 91 13 12 101 13 12 111 13 12 122 13 20 132 13 20 142 13 20 152 13 20 162 13 20 172 13 20 182 13 20 192 13 20 202 13 20 212 13 20 222 13 20 232 13 20 242 13 20 252 13 20 262 13 20 272 13 20 282 13 20 292 13 20 302 13 20 312 13 20 323 13 5 333 13 5 343 13 5 353 13 5 363 13 5 37*/