欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

写了个15位身份证号升级为18位的SQL语句,15位sql

来源: javaer 分享于  点击 7112 次 点评:190

写了个15位身份证号升级为18位的SQL语句,15位sql


-- 15位身份证号升级为18位,适用于18xx年出生的公民
UPDATE 员工表 SET 身份证号=
  
SUBSTRING(身份证号,1,6)+'18'+SUBSTRING(身份证号,7,9)+
  
SUBSTRING('10X98765432',
  (
   
CAST(SUBSTRING(身份证号, 1,1AS INT)*7
  
+CAST(SUBSTRING(身份证号, 2,1AS INT)*9
  
+CAST(SUBSTRING(身份证号, 3,1AS INT)*10
  
+CAST(SUBSTRING(身份证号, 4,1AS INT)*5
  
+CAST(SUBSTRING(身份证号, 5,1AS INT)*8
  
+CAST(SUBSTRING(身份证号, 6,1AS INT)*4
  
+1*2
  
+8*1
  
+CAST(SUBSTRING(身份证号, 7,1AS INT)*6
  
+CAST(SUBSTRING(身份证号, 8,1AS INT)*3
  
+CAST(SUBSTRING(身份证号, 9,1AS INT)*7
  
+CAST(SUBSTRING(身份证号,10,1AS INT)*9
  
+CAST(SUBSTRING(身份证号,11,1AS INT)*10
  
+CAST(SUBSTRING(身份证号,12,1AS INT)*5
  
+CAST(SUBSTRING(身份证号,13,1AS INT)*8
  
+CAST(SUBSTRING(身份证号,14,1AS INT)*4
  
+CAST(SUBSTRING(身份证号,15,1AS INT)*2
  )
  
% 11 + 11)
WHERE LEN(身份证号)=15 AND SUBSTRING(身份证号,13,3IN ('999','998','997','996')

-- 15位身份证号升级为18位,适用于19xx年出生的公民
UPDATE 员工表 SET 身份证号=
  
SUBSTRING(身份证号,1,6)+'19'+SUBSTRING(身份证号,7,9)+
  
SUBSTRING('10X98765432',
  (
   
CAST(SUBSTRING(身份证号, 1,1AS INT)*7
  
+CAST(SUBSTRING(身份证号, 2,1AS INT)*9
  
+CAST(SUBSTRING(身份证号, 3,1AS INT)*10
  
+CAST(SUBSTRING(身份证号, 4,1AS INT)*5
  
+CAST(SUBSTRING(身份证号, 5,1AS INT)*8
  
+CAST(SUBSTRING(身份证号, 6,1AS INT)*4
  
+1*2
  
+9*1
  
+CAST(SUBSTRING(身份证号, 7,1AS INT)*6
  
+CAST(SUBSTRING(身份证号, 8,1AS INT)*3
  
+CAST(SUBSTRING(身份证号, 9,1AS INT)*7
  
+CAST(SUBSTRING(身份证号,10,1AS INT)*9
  
+CAST(SUBSTRING(身份证号,11,1AS INT)*10
  
+CAST(SUBSTRING(身份证号,12,1AS INT)*5
  
+CAST(SUBSTRING(身份证号,13,1AS INT)*8
  
+CAST(SUBSTRING(身份证号,14,1AS INT)*4
  
+CAST(SUBSTRING(身份证号,15,1AS INT)*2
  )
  
% 11 + 11)
WHERE LEN(身份证号)=15 AND SUBSTRING(身份证号,13,3NOT IN ('999','998','997','996')  

相关文章

    暂无相关文章

用户点评