身份证号码第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) <>