请问SQL如何实现以下功能?

两张表

第一张表名:A1
ID 主键
Uni_person 人员唯一字段 【不一样,则表示不是同一个人】

第二张表名A2
ID 引用表A1的ID
ShenFen 身份证号码
Name 姓名
Sex 性别 【1男,2女】
Addr 住址

要求:查询出A2表中所有同性双胞胎的数据。

想法:同性双胞胎身份证号前14位一致(但不能18位一致),同一个姓(不同名),性别一致(不能一男一女),住址一致,且同性双胞胎之间的 人员唯一字段 不一致,请问SQL如何实现?

首先第一个表并没有用,通过身份证号码不同就能区分不是同一个人。剩余的就按照你想法中的条件筛选即可
select a.*
from a2 a
inner join a2 b
on a.Addr = b.Addr
and substr(a.ShenFen, 0, 14) = substr(b.ShenFen, 0, 14) and a.ShenFen <> b.ShenFen
and a.Sex = b.Sex
and substr(a.Name, 0, 1) = substr(b.Name, 0, 1)
order by a.ShenFen