2025-02-25 01:36:22
2025-02-25 00:07:03
我没说清楚貌似,不能直接改成大写,因为a表中有很多身份证的小写x是正确的,那些不能动。
详细点说就是比如b表中有一个4301111111x,a表中有一个4301111111X,这样就要把a表的X改成x。就是必须b表里面有的才去修改a表前面数字相同但是x的大小写不同的数据。
应该是用update做,但是我不会写条件。是不是要用到循环?
那就是说满足以下情况就可以update
1 a表的身份证号最后一位为大写
2 a表的身份证最后一位变小写以后在b表中存在
update a set a.身份证=lower(a.身份证)
where exists (select 1 from b where b.身份证=lower(a.身份证)) --证明b表中有此数据
and a.身份证lower(a.身份证) --证明X为大写
2025-02-25 03:35:58
2025-02-25 01:06:01
2025-02-25 00:25:42
update m_difficultyperson set idcard =(select 身份证 from personidtest p,m_difficultyperson m where substr(身份证,0,length(身份证)-1)=substr(idcard,0,length(idcard)-1) and 身份证 like'%x' and idcard like'%X');