如何用sql实现18位身份证校验

网友投稿 423 2023-12-10

如何用sql实现18位身份证校验

本篇文章为大家展示了如何用sql实现18位身份证校验,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

如何用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小时内删除侵权内容。

上一篇:SqlServer中怎样用exec处理sql字符串中含有变量
下一篇:ORACLE rman备份报错RMAN-03009&ORA-19587&ORA-27072该怎么办
相关文章

 发表评论

暂时没有评论,来抢沙发吧~