如何删除具有相同信息但在不同列中的行?
How can I delete rows that have same information but in different columns?
我正在使用带有 pgAdmin 的 postgresql 数据库,我有一个 table 包含 2 列,列初始化和列结束所以 table 中的所有行都有相同的一个但数据在相反的列中。有没有办法删除不同列中包含相同数据的所有行,保留其中一列?像这样:
Init - End
1 A B
2 B A
3 C D
4 D E
5 D C
6 E D
我想删除第 2,4 和 5 行。
有 EXISTS:
delete from tablename t
where
t."Init" > t."End"
and
exists (
select 1 from tablename
where "End" = t."Init" and "Init" = t."End"
);
此代码将保留行(例如)A、B 并删除行 B、A。
见 demo.
结果:
| Init | End |
| ---- | --- |
| A | B |
| C | D |
| D | E |
我正在使用带有 pgAdmin 的 postgresql 数据库,我有一个 table 包含 2 列,列初始化和列结束所以 table 中的所有行都有相同的一个但数据在相反的列中。有没有办法删除不同列中包含相同数据的所有行,保留其中一列?像这样:
Init - End
1 A B
2 B A
3 C D
4 D E
5 D C
6 E D
我想删除第 2,4 和 5 行。
有 EXISTS:
delete from tablename t
where
t."Init" > t."End"
and
exists (
select 1 from tablename
where "End" = t."Init" and "Init" = t."End"
);
此代码将保留行(例如)A、B 并删除行 B、A。
见 demo.
结果:
| Init | End |
| ---- | --- |
| A | B |
| C | D |
| D | E |