gpt4 book ai didi

sql - 从表中删除 a = b 和 b = a 的记录

转载 作者:行者123 更新时间:2023-12-02 08:42:25 26 4
gpt4 key购买 nike

我有一个包含两个字段 a 和 b 的表。有些记录在 a = b 和 b = a 的意义上是重复的。我想删除这些记录中的一个。

考虑一下:

declare @temp table (a int, b int)

insert into @temp values (1, 2)
insert into @temp values (3, 4)
insert into @temp values (4, 3)
insert into @temp values (5, 6)

--delete 3, 4 or 4, 3

select * from @temp

/*
a | b
--|--
1 | 2
3 | 4
5 | 6

or (I don't care which one)

a | b
--|--
1 | 2
4 | 3
5 | 6
*/

我怎样才能做到这一点?它需要支持 Microsoft SQL Server 2000 及更高版本。

最佳答案

DELETE  x
FROM TableName x
INNER JOIN
(
SELECT a.A, a.B
FROM tableName a
INNER JOIN tableName b
ON ((a.A = b.A AND a.b = b.b) OR
(a.A = b.B AND a.b = b.A)) AND
a.a > b.a
) y ON x.A = y.A AND x.B = y.B

关于sql - 从表中删除 a = b 和 b = a 的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15389609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com