国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

用sql實現18位身份證校驗代碼分享 身份證校驗位計算

2020-07-25 12:59:59
字體:
來源:轉載
供稿:網友

身份證校驗碼的計算方法

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;

復制代碼 代碼如下:

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);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 定远县| 固始县| 湘乡市| 庆阳市| 扎赉特旗| 长子县| 休宁县| 绥阳县| 和龙市| 东辽县| 陆河县| 通渭县| 遵义市| 舞阳县| 辰溪县| 永寿县| 孝感市| 钦州市| 会昌县| 奉贤区| 德惠市| 开封县| 固原市| 霞浦县| 师宗县| 武威市| 惠安县| 马鞍山市| 汉寿县| 合江县| 拉孜县| 正镶白旗| 青河县| 台山市| 孝感市| 军事| 南通市| 鹤山市| 宁陵县| 景德镇市| 行唐县|