CREATE TABLE #A(id INT IDENTITY(1,1),NAME VARCHAR(20),shengfenzheng VARCHAR(20),dizhi VARCHAR(200));INSERT INTO #A ( NAME, shengfenzheng, dizhi ) VALUES ('小狗','266645435454664','湖北')CREATE TABLE #B(id INT IDENTITY(1,1),NAME VARCHAR(20),shengfenzheng VARCHAR(20),dizhi VARCHAR(200))INSERT INTO #B( NAME, shengfenzheng, dizhi ) SELECT '小明','','中山' UNION SELECT '小强','254656456546564','广东广州' UNION SELECT '小花花','','重庆万州' UNION SELECT '小华','','四川成都'SELECT * FROM #A SELECT * FROM #BUPDATE #B SET shengfenzheng = CASE #B.shengfenzheng WHEN '' THEN #A.shengfenzheng WHEN NULL THEN #A.shengfenzheng ELSE #A.shengfenzheng END FROM #A INNER JOIN #B ON #A.NAME = #B.NAME AND #A.dizhi = #B.dizhi
--直接SQL语句即可。 update b1 set 身份证号 = a1.身份证号 from b1 , a1 where b1.姓名 = a.姓名 and b1.地址 = a.地址 --如果要存储过程则入下: create proc my_proc as begin update b1 set 身份证号 = a1.身份证号 from b1 , a1 where b1.姓名 = a.姓名 and b1.地址 = a.地址 end
( NAME, shengfenzheng, dizhi )
VALUES ('小狗','266645435454664','湖北')CREATE TABLE #B(id INT IDENTITY(1,1),NAME VARCHAR(20),shengfenzheng VARCHAR(20),dizhi VARCHAR(200))INSERT INTO #B( NAME, shengfenzheng, dizhi )
SELECT '小明','','中山' UNION
SELECT '小强','254656456546564','广东广州' UNION
SELECT '小花花','','重庆万州' UNION
SELECT '小华','','四川成都'SELECT * FROM #A
SELECT * FROM #BUPDATE #B SET shengfenzheng = CASE #B.shengfenzheng WHEN '' THEN #A.shengfenzheng WHEN NULL THEN #A.shengfenzheng ELSE #A.shengfenzheng END
FROM #A INNER JOIN
#B ON #A.NAME = #B.NAME AND #A.dizhi = #B.dizhi
估计我没说法不不对吧
我的主表在数据库总是存在的·····excel导入的数据时才跟数据库主表A1进行对比!!!!!对比必须要姓名和地址,用LIKE模糊查询如果同时满足 且B1中没有身份证号,才把A1中的身份证插入到B1中,其他不符合 的或者是有身份证号的,都不变但是同样要上传到数据库中!!!!!
--直接SQL语句即可。
update b1 set 身份证号 = a1.身份证号
from b1 , a1
where b1.姓名 = a.姓名 and b1.地址 = a.地址
--如果要存储过程则入下:
create proc my_proc as
begin
update b1 set 身份证号 = a1.身份证号
from b1 , a1
where b1.姓名 = a.姓名 and b1.地址 = a.地址
end