用sql實現(xiàn)18位身份證校驗代碼分享 身份證校驗位計算
身份證校驗碼的計算方法
1、將前面的身份證號碼17位數(shù)分別乘以不同的系數(shù)。第i位對應(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、用加出來和除以11,看余數(shù)是多少?;
4、余數(shù)只可能有0 1 2 3 4 5 6 7 8 9 10這11個數(shù)字。其分別對應(yīng)的最后一位身份證的號碼為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);
相關(guān)文章
Centos 7.3下SQL Server安裝配置方法圖文教程
這篇文章主要為大家詳細介紹了Centos 7.3下SQL Server安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08SQLSERVER數(shù)據(jù)庫備份后無法還原的解決辦法
有時候為了考慮數(shù)據(jù)安全我們都會備份數(shù)據(jù)庫,sqlserver的備份格式一般都是bak結(jié)尾的,但覆蓋時容易出問題,這里簡單介紹下,需要的朋友可以參考下2013-08-08必須會的SQL語句(一) 創(chuàng)建數(shù)據(jù)庫與刪除數(shù)據(jù)庫
這篇文章主要介紹了sqlserver創(chuàng)建數(shù)據(jù)庫與刪除數(shù)據(jù)庫的語句,需要的朋友可以參考下2015-01-01如何在SQL Server 2014中用資源調(diào)控器壓制你的存儲?
本文通過一個非常簡單的例子介紹了如何利用SQL Server 2014中的資源調(diào)控器(Resource Governor)來壓制你的存儲,需要的朋友可以參考下2015-07-07sql server通過腳本進行數(shù)據(jù)庫壓縮全備份的方法【推薦】
這篇文章主要介紹了sql server通過腳本進行數(shù)據(jù)庫壓縮全備份的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-06-06SQL中函數(shù) replace 的參數(shù)1的數(shù)據(jù)類型ntext無效的解決方法
SQL中函數(shù) replace 的參數(shù) 1 的數(shù)據(jù)類型 ntext 無效。找了半天找到了解決辦法2010-06-06