小程序引擎如何促进企业在金融行业的数字化转型及合规运营
423
2023-12-10
本篇文章为大家展示了如何用sql实现18位身份证校验,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
1、将前面的身份证号码17位数分别乘以不同的系数。第i位对应的数为[2^(18-i)]mod11。从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 ;
2、将这17位数字和系数相乘的结果相加;
3、用加出来和除以11,看余数是多少?;
4、余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字。其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2;
代码如下:
with t as(select 34052419800101001Xid from dual)select idfrom twhere exists(select 1from dual connect by level<=length(id)-1
--17having mod(sum(substr(id,level,1)*power(2,18-level)),11)=case substr(id,-1,1)when 1 then 0when 0 then 1when X then 2else12-substr(id,-1,1)end);
上述内容就是如何用sql实现18位身份证校验,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~