IDcardNum为身份证字段 IDinformatoin为数据库表 直接通过SQL输出身份证号码数据是否符合国家标准
SELECT IDcardNum, IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=0, if(substr(ep.IDcardNum,18,1)="1","正确","错误"), IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=1, if(substr(ep.IDcardNum,18,1)="0","正确","错误"), IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=2, if(substr(ep.IDcardNum,18,1)="X","正确","错误"), IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=3, if(substr(ep.IDcardNum,18,1)="9","正确","错误"), IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=4, if(substr(ep.IDcardNum,18,1)="8","正确","错误"), IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=5, if(substr(ep.IDcardNum,18,1)="7","正确","错误"), IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=6, if(substr(ep.IDcardNum,18,1)="6","正确","错误"), IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=7, if(substr(ep.IDcardNum,18,1)="5","正确","错误"), IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=8, if(substr(ep.IDcardNum,18,1)="4","正确","错误"), IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=9, if(substr(ep.IDcardNum,18,1)="3","正确","错误"), IF(MOD(SUBSTR(ep.IDcardNum,1,1)*7+SUBSTR(ep.IDcardNum,2,1)*9+SUBSTR(ep.IDcardNum,3,1)*10+SUBSTR(ep.IDcardNum,4,1)*5+SUBSTR(ep.IDcardNum,5,1)*8+SUBSTR(ep.IDcardNum,6,1)*4+SUBSTR(ep.IDcardNum,7,1)*2+SUBSTR(ep.IDcardNum,8,1)*1+SUBSTR(ep.IDcardNum,9,1)*6+SUBSTR(ep.IDcardNum,10,1)*3+SUBSTR(ep.IDcardNum,11,1)*7+SUBSTR(ep.IDcardNum,12,1)*9+SUBSTR(ep.IDcardNum,13,1)*10+SUBSTR(ep.IDcardNum,14,1)*5+SUBSTR(ep.IDcardNum,15,1)*8+SUBSTR(ep.IDcardNum,16,1)*4+SUBSTR(ep.IDcardNum,17,1)*2,11)=10, if(substr(ep.IDcardNum,18,1)="2","正确","错误"),"错误"))))))))))) FROM `IDinformatoin` as ep