27,579
社区成员
发帖
与我相关
我的任务
分享
declare @tb table (code1 varchar(10),code2 varchar(10),name varchar(10))
insert into @tb select '0001','101','li1'
insert into @tb select '0001','552','li2'
insert into @tb select '0001','556','li3'
insert into @tb select '0002','000','li4'
insert into @tb select '0002','666','li5'
insert into @tb select '0003','000','li6'
select *,ROW_NUMBER() OVER(ORDER BY code1,code2 asc) AS 'Row Number' from @tb
create table tb(code1 varchar(8), code2 varchar(8), name varchar(16))
insert tb select '0001', '101', 'li1'
union all select '0001', '552', 'li2'
union all select '0001', '556', 'li3'
union all select '0002', '000', 'li4'
union all select '0002', '666', 'li5'
union all select '0003', '000', 'li6'
select t.*, [No]=(select count(1)+1 from tb where code1=t.code1 and name<t.name)
from tb t
/*
code1 code2 name No
-------- -------- ---------------- -----------
0001 101 li1 1
0001 552 li2 2
0001 556 li3 3
0002 000 li4 1
0002 666 li5 2
0003 000 li6 1
(6 row(s) affected)
*/
drop table tb
declare @tb table (code1 varchar(10),code2 varchar(10),name varchar(10))
insert into @tb select '0001','101','li1'
insert into @tb select '0001','552','li2'
insert into @tb select '0001','556','li3'
insert into @tb select '0002','000','li4'
insert into @tb select '0002','666','li5'
insert into @tb select '0003','000','li6'
select *,[no]=(select count(1) from @tb where code1=t.code1 and name<=t.name) from @tb t
declare @tb table (code1 varchar(10),code2 varchar(10),name varchar(10))
insert into @tb select '0001','101','li1'
insert into @tb select '0001','552','li2'
insert into @tb select '0001','556','li3'
insert into @tb select '0002','000','li4'
insert into @tb select '0002','666','li5'
insert into @tb select '0003','000','li6'
select *,[No]=(select count(1) from @tb where code1=a.code1 and [name]<=a.name) from @tb a
code1 code2 name No
---------- ---------- ---------- -----------
0001 101 li1 1
0001 552 li2 2
0001 556 li3 3
0002 000 li4 1
0002 666 li5 2
0003 000 li6 1
(6 行受影响)
select *,no=(select count(1) from tb where code1=a.code1 and code2 <=a.code2) from tb a