身份證校驗(yàn)碼的計(jì)算方法
1、將前面的身份證號(hào)碼17位數(shù)分別乘以不同的系數(shù)。第i位對(duì)應(yīng)的數(shù)為[2^(18-i)]mod11。從第一位到第十七位的系數(shù)分別為:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 ;
2、將這17位數(shù)字和系數(shù)相乘的結(jié)果相加;
3、用加出來(lái)和除以11,看余數(shù)是多少?;
4、余數(shù)只可能有0 1 2 3 4 5 6 7 8 9 10這11個(gè)數(shù)字。其分別對(duì)應(yīng)的最后一位身份證的號(hào)碼為1 0 X 9 8 7 6 5 4 3 2;
復(fù)制代碼 代碼如下:
with t as(select '34052419800101001X'id from dual)
select id
from t
where exists(select 1
from dual connect by level=length(id)-1 --17
having mod(sum(substr(id,level,1)*power(2,18-level)),11)=
case substr(id,-1,1)
when '1' then 0
when '0' then 1
when 'X' then 2
else
12-substr(id,-1,1)
end);
您可能感興趣的文章:- 通過(guò)SQLSERVER重啟SQLSERVER服務(wù)和計(jì)算機(jī)的方法
- 利用php+mysql來(lái)做一個(gè)功能強(qiáng)大的在線計(jì)算器
- 在php和MySql中計(jì)算時(shí)間差的方法
- mysql 字符串長(zhǎng)度計(jì)算實(shí)現(xiàn)代碼(gb2312+utf8)
- SQL2005CLR函數(shù)擴(kuò)展-深入環(huán)比計(jì)算的詳解
- SQLSERVER 根據(jù)地圖經(jīng)緯度計(jì)算距離差示例
- SQL計(jì)算字符串中最大的遞增子序列的方法
- SQL語(yǔ)句計(jì)算兩個(gè)日期之間有多少個(gè)工作日的方法
- 如何計(jì)算多個(gè)訂單的核銷金額