oracle中如何通过身份证号码来set性别为男或者女,有高手帮忙写一个SQL语句么,谢谢了!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中如何通过身份证号码来set性别为男或者女,有高手帮忙写一个SQL语句么,谢谢了!!相关的知识,希望对你有一定的参考价值。

要用 update set语句来写,需要判断15位和18位的,然后还需要判断尾部是不是带X的!!

--假设表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;
参考技术A update table set 性别 = decode(mode(to_number(substr(身份证, decode(length(身份证), 15, 15, 18, 17), 1)), 2),1,'男',0,'女')
能看懂吗
参考技术B update tb_book set sex='男' where id=1;
update 表名 set sex='性别' where id='身份证号'

以上是关于oracle中如何通过身份证号码来set性别为男或者女,有高手帮忙写一个SQL语句么,谢谢了!!的主要内容,如果未能解决你的问题,请参考以下文章

Mysql sql语句写约束性别只能为男或女

mysql创建数据库的时候如何设置性别列只能为男或女默认男

C语言题目:身份证号码与性别?

Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳

利用c语言数组验证?

正则 身份证的验证