已找到怎么解决了:
select *
FROM [KFBaoMing].[dbo].[12]
where (((len(身份证号)=15) and (Substring(身份证号,15,1) in (1,3,5,7,9)) and 性别<>'男')
or ((len(身份证号)=15) and (Substring(身份证号,15,1) in (2,4,6,8,0)) and 性别<>'女'))
or (((len(身份证号)=18) and (Substring(身份证号,17,1) in (1,3,5,7,9)) and 性别<>'男')
or ((len(身份证号)=18) and (Substring(身份证号,17,1) in (2,4,6,8,0)) and 性别<>'女'))
但还是要谢谢fengjj,分数还是给给你
1ã15ä½èº«ä»½è¯å·
15ä½èº«ä»½è¯å·ç¼ç æ ¼å¼ï¼6ä½å°åºç¼ç +2ä½åºç年份+2ä½åºçæ份+2ä½åºçæ¥æ+3ä½æµæ°´å·
å ¶ä¸3ä½æµæ°´å·çæåä¸ä¸ªä¸ºåæ°çå为ç·æ§ï¼åæ°æé¶ç为女æ§
2ã18ä½èº«ä»½è¯å·
18ä½èº«ä»½è¯å·ç¼ç æ ¼å¼ï¼6ä½å°åºç¼ç +4ä½åºç年份+2ä½åºçæ份+2ä½åºçæ¥æ+3ä½æµæ°´å·+1ä½æ ¡éªç
å ¶ä¸3ä½æµæ°´å·çæåä¸ä¸ªä¸ºåæ°çå为ç·æ§ï¼åæ°æé¶ç为女æ§
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ï¼
éè¿ä¸é¢å¾ç¥å¦æä½æ°æ¯2ï¼å°±ä¼å¨èº«ä»½è¯ç第18ä½æ°åä¸åºç°ç½é©¬æ°åçâ ©ãå¦æä½æ°æ¯10ï¼èº«ä»½è¯çæåä¸ä½å·ç å°±æ¯2ï¼
ä¾å¦ï¼æç·æ§ç身份è¯å·ç æ¯34052419800101001Xãæ们è¦ççè¿ä¸ªèº«ä»½è¯æ¯ä¸æ¯åæ³ç身份è¯ã
é¦å ï¼æ们å¾åºï¼å17ä½çä¹ç§¯åæ¯189
ç¶åï¼ç¨189é¤ä»¥11å¾åºçç»ææ¯17 + 2/11ï¼ä¹å°±æ¯è¯´ä½æ°æ¯2ã
æåï¼éè¿å¯¹åºè§åå°±å¯ä»¥ç¥éä½æ°2对åºçæ°åæ¯xãæ以ï¼è¿æ¯ä¸ä¸ªåæ ¼ç身份è¯å·ç ã
PHP 计ç®å ¬å¼ï¼
$card="xxx";//身份è¯å·ç
$map=array(1, 0, X, 9, 8, 7, 6, 5, 4, 3, 2);
$sum = 0;
for($i = 17; $i > 0; $i--){
$s=pow(2, $i) % 11;
$sum += $s * $card[17-$i];
}
echo $map[$sum % 11];//è¿éæ¾ç¤ºæåä¸ä½æ ¡éªç 追é®
*
FROM
[KFBaoMing].[dbo].[12]
where
(case when æ§å«='ç·' then 1 else 0 end)<>(case when ((case when len(身份è¯å·)=15 then right(身份è¯å·,1) when len(身份è¯å·)=18 then Substring(身份è¯å·,17,1) end)%2)=1 then 1 else 0 end)
15ä½èº«ä»½è¯å·ç¼ç æ ¼å¼ï¼6ä½å°åºç¼ç +2ä½åºç年份+2ä½åºçæ份+2ä½åºçæ¥æ+3ä½æµæ°´å·
å ¶ä¸3ä½æµæ°´å·çæåä¸ä¸ªä¸ºåæ°çå为ç·æ§ï¼åæ°æé¶ç为女æ§
2ã18ä½èº«ä»½è¯å·
18ä½èº«ä»½è¯å·ç¼ç æ ¼å¼ï¼6ä½å°åºç¼ç +4ä½åºç年份+2ä½åºçæ份+2ä½åºçæ¥æ+3ä½æµæ°´å·+1ä½æ ¡éªç
å ¶ä¸3ä½æµæ°´å·çæåä¸ä¸ªä¸ºåæ°çå为ç·æ§ï¼åæ°æé¶ç为女æ§
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ï¼
éè¿ä¸é¢å¾ç¥å¦æä½æ°æ¯2ï¼å°±ä¼å¨èº«ä»½è¯ç第18ä½æ°åä¸åºç°ç½é©¬æ°åçâ ©ãå¦æä½æ°æ¯10ï¼èº«ä»½è¯çæåä¸ä½å·ç å°±æ¯2ï¼
ä¾å¦ï¼æç·æ§ç身份è¯å·ç æ¯34052419800101001Xãæ们è¦ççè¿ä¸ªèº«ä»½è¯æ¯ä¸æ¯åæ³ç身份è¯ã
é¦å ï¼æ们å¾åºï¼å17ä½çä¹ç§¯åæ¯189
ç¶åï¼ç¨189é¤ä»¥11å¾åºçç»ææ¯17 + 2/11ï¼ä¹å°±æ¯è¯´ä½æ°æ¯2ã
æåï¼éè¿å¯¹åºè§åå°±å¯ä»¥ç¥éä½æ°2对åºçæ°åæ¯xãæ以ï¼è¿æ¯ä¸ä¸ªåæ ¼ç身份è¯å·ç ã
PHP 计ç®å ¬å¼ï¼
$card="xxx";//身份è¯å·ç
$map=array(1, 0, X, 9, 8, 7, 6, 5, 4, 3, 2);
$sum = 0;
for($i = 17; $i > 0; $i--){
$s=pow(2, $i) % 11;
$sum += $s * $card[17-$i];
}
echo $map[$sum % 11];//è¿éæ¾ç¤ºæåä¸ä½æ ¡éªç 追é®
è½å¦ç»è¯¦ç»è¯´ä¸æä¹ç¨sqlè¯å¥å®ç°ï¼è°¢è°¢
追çä½ çSQLè¯å¥è¿äºç¹çï¼æç»ä½ æ¥ä¸ªç®åç
select*
FROM
[KFBaoMing].[dbo].[12]
where
(case when æ§å«='ç·' then 1 else 0 end)<>(case when ((case when len(身份è¯å·)=15 then right(身份è¯å·,1) when len(身份è¯å·)=18 then Substring(身份è¯å·,17,1) end)%2)=1 then 1 else 0 end)
Orçè¯å¥ç¨å¤äºï¼ä¼å½±åæç
温馨提示:答案为网友推荐,仅供参考