日期:2014-05-17 浏览次数:20455 次
由 BillNO cNo 00893283*1 T8600962858523 00893283*2 T8600962858523 00893283*3 T8600962858523 00893283*4 T8600962858523 00893284*1 T8600962858523 00893284*2 T8600962858523 00893284*3 T8600962858523 00893284*4 T8600962858523 00893285*1 T8600962858523 00893285*2 T8600962858523 00893285*3 T8600962858523 00893285*4 T8600962858523 得到如下序号(Num)。请问如何实现 Num BillNO cNo 1 00893283*1 T8600962858523 1 00893283*2 T8600962858523 1 00893283*3 T8600962858523 1 00893283*4 T8600962858523 2 00893284*1 T8600962858523 2 00893284*2 T8600962858523 2 00893284*3 T8600962858523 2 00893284*4 T8600962858523 3 00893285*1 T8600962858523 3 00893285*2 T8600962858523 3 00893285*3 T8600962858523 3 00893285*4 T8600962858523
declare @test table(BillNO varchar(15),cNo varchar(20)) insert into @test select '00893283*1', 'T8600962858523' union all select '00893283*2', 'T8600962858523' union all select '00893283*3', 'T8600962858523' union all select '00893283*4', 'T8600962858523' union all select '00893284*1', 'T8600962858523' union all select '00893284*2', 'T8600962858523' union all select '00893284*3', 'T8600962858523' union all select '00893284*4', 'T8600962858523' union all select '00893285*1', 'T8600962858523' union all select '00893285*2', 'T8600962858523' union all select '00893285*3', 'T8600962858523' union all select '00893285*4', 'T8600962858523' select dense_rank() over(order by substring(BillNO,1,charindex('*',BillNO)-1)) Num,BillNO,cNo from @test /* Num BillNO cNo -------------------- --------------- -------------------- 1 00893283*1 T8600962858523 1 00893283*2 T8600962858523 1 00893283*3 T8600962858523 1 00893283*4 T8600962858523 2 00893284*1 T8600962858523 2 00893284*2 T8600962858523 2 00893284*3 T8600962858523 2 00893284*4 T8600962858523 3 00893285*1 T8600962858523 3 00893285*2 T8600962858523 3 00893285*3 T8600962858523 3 00893285*4 T8600962858523 */