作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含两个字段 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/
我是一名优秀的程序员,十分优秀!