gpt4 book ai didi

mysql - 删除SQL中的重复元素

转载 作者:行者123 更新时间:2023-11-29 09:37:56 24 4
gpt4 key购买 nike

如何删除SQL中的重复元素?这意味着在每一列中,每个元素只能出现一次。

例如,我有一个像这样的表:

NAME1 NAME2 NAME3 NAME4
A1 A2 A3 A4
A1 B2 A3 A4
A1 C2 C3 B4
B1 C2 B3 C4
C1 B2 A3 B4

每列中有很多重复元素,而且它们是随机放置的。

我应该将其转换为如下表:

NAME1 NAME2 NAME3 NAME4
A1 A2 A3 A4
B1 B2 B3 B4
C1 C2 C3 C4

最佳答案

好吧,我终于找到了解决我的问题的方法。

选择每列中的不同名称作为表,然后通过添加公共(public)行号进行内部连接。

但是,这个问题可以解决,因为每列中不同名称的数量是相等的。我仍在尝试找出当每列中不同名称的数量不相等时如何解决问题。

set @r1 = 0, @r2=0, @r3=0, @r4=0;

select A.n1, B.n2, C.n3, D.n4 from

(select *,
case when n1 is not null then (@r1:=@r1+1) end as Rownumber
from(
select distinct NAME1 n1
from MYTABLE)Tn1)A

inner join

(select *,
case when n2 is not null then (@r2:=@r2+1) end as Rownumber
from(
select distinct NAME2 n2
from MYTABLE)Tn2)B

on A.Rownumber = B.Rownumber

inner join

(select *,
case when n3 is not null then (@r3:=@r3+1) end as Rownumber
from(
select distinct NAME3 n3
from MYTABLE)Tn3)C

on A.Rownumber = C.Rownumber

inner join

(select *,
case when n4 is not null then (@r4:=@r4+1) end as Rownumber
from(
select distinct NAME4 n4
from MYTABLE)Tn4)D

on A.Rownumber = D.Rownumber;

关于mysql - 删除SQL中的重复元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57210468/

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