用SQL语句怎样实现新旧身份证号码比对

来源:百度知道 编辑:UC知道 时间:2024/05/21 19:02:55
例如:a表中姓名对应的身份证号码是15位的,b表中相同姓名对应的身份证号是18位的,怎样关联才能导出a表中数据

根据新旧身份证编号对照规则写:
新编号将出生年份用4位表示,旧编号只有两位。新编号末尾增加一位标识位。
所以新编号的前六位+新编号的九到十七位和旧编号相等。
select * from a,b where a.id = substring(b.id,1,6) + substring(b.id,9,9)

SELECT *
FROM A INNER JOIN B ON B.身份证号 LIKE SUBSTRING(A.身份证号, 1, 6) + '19' + SUBSTRING(A.身份证号, 7, 9) + '_'

最简单的理解就是:
select a.*
from a join b on a.姓名=b.姓名

如果要求名字和身份证号码作为主键,那么:
select a.*
from a join b on a.姓名=b.姓名 and a.身份证号码=left(b.身份证号码,15)