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