如何用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 '34052419800101001X'id 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位身份证校验,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。
文章标题:如何用sql实现18位身份证校验
分享路径:http://ybzwz.com/article/piojph.html