序号 所在乡镇 编号 姓名 家庭关系 身份证号 家庭住址
1 陈疃镇 001 张茂京 372802193104095717 上蔡庄村
1 陈疃镇 001 潘同远 372802194610315713 滕家庄子村
1 陈疃镇 001 贺兆海 372802195311125711 石灰窑村
1 陈疃镇 002 刘贤春 372802194607275722 石灰窑村
1 陈疃镇 003 迟令保 372802196512035717 石灰窑村
1 陈疃镇 004 焦见水 372802195712315735 石灰窑村
1 陈疃镇 001 牟秀红 372802196810315768 北疃村
1 陈疃镇 002 王进平 37280219610228573X 北疃村
。。。。。。
------解决方案--------------------
- SQL code
select RIGHT(CONVERT(VARCHAR(4),1000+(row_number() over(partition by 家庭住址 order by 家庭住址))),3)编号,* from TB
------解决方案--------------------
select RIGHT(CONVERT(VARCHAR(4),1000+(row_number() over(partition by 家庭住址 order by 家庭住址))),3)编号,* from TB
------解决方案--------------------
- SQL code
;WITH cte AS (SELECT 1 A,'陈疃镇' B,'001' C, '张茂京' D,'372802193104095717' E,'上蔡庄村' F UNION SELECT 1,'陈疃镇','001', '潘同远','372802194610315713','滕家庄子村' UNION SELECT 1,'陈疃镇','001', '贺兆海','372802195311125711','石灰窑村' UNION SELECT 1,'陈疃镇','002', '刘贤春','372802194607275722','石灰窑村' UNION SELECT 1,'陈疃镇','003', '迟令保','372802196512035717','石灰窑村' UNION SELECT 1,'陈疃镇','004', '焦见水','372802195712315735','石灰窑村' UNION SELECT 1,'陈疃镇','001', '牟秀红','372802196810315768','北疃村' UNION SELECT 1,'陈疃镇','002', '王进平','37280219610228573X','北疃村' )select RIGHT(CONVERT(VARCHAR(4),1000+(row_number() over(partition by F order by F ))),3)编号,* from CTE/*编号 A B C D E F001 1 陈疃镇 001 牟秀红 372802196810315768 北疃村002 1 陈疃镇 002 王进平 37280219610228573X 北疃村001 1 陈疃镇 001 张茂京 372802193104095717 上蔡庄村001 1 陈疃镇 001 贺兆海 372802195311125711 石灰窑村002 1 陈疃镇 002 刘贤春 372802194607275722 石灰窑村003 1 陈疃镇 003 迟令保 372802196512035717 石灰窑村004 1 陈疃镇 004 焦见水 372802195712315735 石灰窑村001 1 陈疃镇 001 潘同远 372802194610315713 滕家庄子村*/
------解决方案--------------------
- SQL code
create table da(序号 int, 所在乡镇 varchar(10), 编号 varchar(10),姓名 varchar(10), 家庭关系 varchar(10),身份证号 varchar(20), 家庭住址 varchar(10))insert into da(序号,所在乡镇,姓名,身份证号,家庭住址)select 1, '陈疃镇', '张茂京', '372802193104095717', '上蔡庄村' union allselect 1, '陈疃镇', '潘同远', '372802194610315713', '滕家庄子村' union allselect 1, '陈疃镇', '贺兆海', '372802195311125711', '石灰窑村' union allselect 1, '陈疃镇', '刘贤春', '372802194607275722', '石灰窑村' union allselect 1, '陈疃镇', '迟令保', '372802196512035717', '石灰窑村' union allselect 1, '陈疃镇', '焦见水', '372802195712315735', '石灰窑村' union allselect 1, '陈疃镇', '牟秀红', '372802196810315768', '北疃村' union allselect 1, '陈疃镇', '王进平', '37280219610228573X', '北疃村'update aset a.编号=b.编号from da ainner join(select 编号='0'+rtrim(row_number() over(partition by 家庭住址 order by getdate())),身份证号 from da) b on a.身份证号=b.身份证号select * from da/*序号 所在乡镇 编号 姓名 家庭关系 身份证号 家庭住址----------- ---------- ---------- ---------- ---------- -------------------- ----------1 陈疃镇 01 张茂京 NULL 372802193104095717 上蔡庄村1 陈疃镇 01 潘同远 NULL 372802194610315713 滕家庄子村1 陈疃镇 01 贺兆海 NULL 372802195311125711 石灰窑村1 陈疃镇 02 刘贤春 NULL 372802194607275722 石灰窑村1 陈疃镇 03 迟令保 NULL 372802196512035717 石灰窑村1 陈疃镇 04 焦见水 NULL 372802195712315735 石灰窑村1 陈疃镇 01 牟秀红 NULL 372802196810315768 北疃村1 陈疃镇 02 王进平 NULL 37280219610228573X 北疃村(8 row(s) affected)*/