【问题标题】:Remove row "A" where its 'destination' value is already exist in the 'source' value on row "B"删除行“A”,其“目标”值已存在于“B”行的“源”值中
【发布时间】:2020-08-06 22:53:33
【问题描述】:

为令人困惑的标题道歉。我有一个从 A 点到 B 点的基本“路线”表,从下图中我们可以看到 ID 1622 和 ID 1634 基本相同,因为一旦访问某个点就不能再次访问它(单向),我想删除其中一个,所以从 B708B733 只有一行。

【问题讨论】:

    标签: sql sql-server tsql select sql-server-2012


    【解决方案1】:

    你可以使用not exists:

    select t.*
    from mytable t
    where not exists (
        select 1
        from mytable t1
        where t1.source = t.destination and t1.destination = t.source and t1.id < t1.id
    )
    

    基本上当存在两个“镜像”行时,这会保留具有最小id 的行,并忽略另一行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-28
      • 1970-01-01
      相关资源
      最近更新 更多