wenjunsu 2022-08-29 16:02 采纳率: 0%
浏览 49

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

两张表

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

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

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

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

  • 写回答

1条回答 默认 最新

  • Huppert 2022-08-29 16:25
    关注

    首先第一个表并没有用,通过身份证号码不同就能区分不是同一个人。剩余的就按照你想法中的条件筛选即可
    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

    评论

报告相同问题?

问题事件

  • 创建了问题 8月29日

悬赏问题

  • ¥15 网络分析设施点无法识别
  • ¥15 状态图的并发态问题咨询
  • ¥15 PFC3D,plot
  • ¥15 VAE模型编程报错无法解决
  • ¥100 基于SVM的信息粒化时序回归预测,有偿求解!
  • ¥15 物体组批优化问题-数学建模求解答
  • ¥15 微信原生小程序tabBar编译报错
  • ¥350 麦克风声源定位坐标不准
  • ¥15 apifox与swagger使用
  • ¥15 egg异步请求返回404的问题