如何使用SQL判断身份证号码第18位是否符合规则

身份证号码第18位符合如下算法:用前十七位号码,依次加权乘以7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2,再将得出的加权总和除以11,得出的余数, 从0到10十一种,依次对应尾号:1、0、X、9、8、7、6、5、4、3、2 

脚本如下:其中 IDENTIFYNUMBER为身份证号

MOD (
	(	substr(a.IDENTIFYNUMBER, 1, 1) * 7 + substr(a.IDENTIFYNUMBER, 2, 1) * 9 + substr(a.IDENTIFYNUMBER, 3, 1) * 10 + substr(a.IDENTIFYNUMBER, 4, 1) * 5 + substr(a.IDENTIFYNUMBER, 5, 1) * 8 + substr(a.IDENTIFYNUMBER, 6, 1) * 4 + substr(a.IDENTIFYNUMBER, 7, 1) * 2 + substr(a.IDENTIFYNUMBER, 8, 1) * 1 + substr(a.IDENTIFYNUMBER, 9, 1) * 6 + substr(a.IDENTIFYNUMBER, 10, 1) * 3 + substr(a.IDENTIFYNUMBER, 11, 1) * 7 + substr(a.IDENTIFYNUMBER, 12, 1) * 9 + substr(a.IDENTIFYNUMBER, 13, 1) * 10 + substr(a.IDENTIFYNUMBER, 14, 1) * 5 + substr(a.IDENTIFYNUMBER, 15, 1) * 8 + substr(a.IDENTIFYNUMBER, 16, 1) * 4 + substr(a.IDENTIFYNUMBER, 17, 1) * 2
	),	11) <>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值