2020-11-03 oracle sql根据身份证号来判断性别

最近做的一个功能用到了用户的性别,但是之前oracle数据库中存的性别有问题,所以需要根据用户的身份证号来更正性别。
性别和身份证号倒数第二位是相关联的,倒数第二位是奇数,性别就为男,为偶数,性别为女

sql 语句 使用了 substr函数来取倒数第二位,substr(sfzh,-2,1) 第一个参数是要取值的字符串,在这里就是用户的身份证号,第二个参数就是开始位置,负数表示倒数的位置,-2就是倒数第二个字符,最后一位是要取的字符串长度,取一位。

使用了to_number函数,从substr取出来的是字符串类型,需要转换为数字类型,然后再进行mod趋于运算来判断 奇偶数。

update users set xb = mod( to_number( substr(sfzh,-2,1) ) ,2 )
这样就把user表性别字段(xb)更新成功了. xb为1 为男生,xb为0 为女生

查询的时候可以使用case 语句来返回男女
select name,sfzh, case xb when '0' then '女' when '1' then '男' end from users

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值