27,579
社区成员
发帖
与我相关
我的任务
分享
--> 测试数据: [tb]
if object_id('[tb]') is not null drop table [tb]
create table [tb] (MainCode int,MemberCode varchar(10),Name varchar(20),Relation varchar(20))
insert into [tb]
select 852001,'85200102','李四','子女' union all
select 852001,'85200103','张小三','子女' union all
select 852001,'85200104','张三','户主' union all
select 852002,'85200201','老王','户主' union all
select 852002,'85200202','小王','子女' union all
select 852002,'85200203','王小','子女'
update tb set membercode=left(membercode,6)+(select right('00'+ltrim(count(1)),2) from tb where maincode=a.maincode and MemberCode<=a.MemberCode)
from tb a
select * from [tb]
--结果:
MainCode MemberCode Name Relation
----------- ---------- -------------------- --------------------
852001 85200101 李四 子女
852001 85200102 张小三 子女
852001 85200103 张三 户主
852002 85200201 老王 户主
852002 85200202 小王 子女
852002 85200203 王小 子女
Update A set A.MemberCode=852001+'01' From A,B
where A.MainCode=B.MainCode
And A.Name=B.Name
And Right(A.MemberCode,2)<>'01'
??update a set MemberCode=Left(MemberCode,6)+'01' from b wher a.MainCode=b.MainCode and a.name=b.name
if object_id('表A') is not null drop table 表A
go
-------------
create table 表A
(MainCode varchar(10),MemberCode varchar(10),Name varchar(10),Relation varchar(10))
insert 表A
select '852001','85200102','李四',' 子女' union all
select '852001','85200103','张小三',' 子女' union all
select '852001','85200104','张三',' 户主' union all
select '852002','85200201','老王',' 户主' union all
select '852002','85200202','小王',' 子女' union all
select '852002','85200203','王小',' 子女'
--------------
declare @i int ,@MemberCode varchar(10),@MainCode varchar(10)
update 表A set
@i=(case when MainCode=@MainCode then @i+1 else 1 end),
@MainCode=MainCode,
MemberCode=left(MemberCode,6)+right('00'+ltrim(@i),2)
--------------
select * from 表A
/*
MainCode MemberCode Name Relation
---------- ---------- ---------- ----------
852001 85200101 李四 子女
852001 85200102 张小三 子女
852001 85200103 张三 户主
852002 85200201 老王 户主
852002 85200202 小王 子女
852002 85200203 王小 子女
(所影响的行数为 6 行)
*/