--假设表test,字段sex是性别,cert_number是身份证号码,都是varchar2类型
--15位 最后一位奇数或偶数代表一个人的性别
update test t set t.sex = decode(mod(to_number(t.cert_number),2),0,'男','女')
where upper(t.cert_number) not like '%X' and length(t.cert_number) = 15;
--最后一位是X,且长度为15的,无法判断性别
update test t set t.sex = '最后一位是X,无法判断性别!'
where upper(t.cert_number) like '%X' and length(t.cert_number) = 15;
--18位 倒数第二位的奇数或偶数代表男性或女性
update test t set t.sex = decode(mod(to_number(substr(t.cert_number,17,1)),2),0,'男','女')
where length(t.cert_number) = 18;
浙公网安备 33010602011771号