gpt4 book ai didi

mysql - SQLYOG - SQL - 将两列合并为 1 列

转载 作者:行者123 更新时间:2023-11-28 23:57:25 25 4
gpt4 key购买 nike

我有两列显示相同类型的信息,但不一定是相同的数据。尽管某些数据重叠,但每列可能包含/可能不包含还将包含 NULL 值的信息。像这样:

Company ID | Company Name | Company ID | Company Name
-----------+--------------+------------+-------------
1 | A | 1 | A
2 | B | NULL | NULL
NULL | NULL | 3 | C

我正在尝试将第 1 列和第 2 列分别合并到第 3 列和第 4 列,以便我有两列如下所示:

Company ID | Company Name
-----------+-------------
1 | A
2 | B
3 | C

看着类似的 stackoverflow 问题,我怀疑这是否容易完成。这可能吗?请告诉我!

任何事情都有帮助。

最佳答案

由于您现在似乎没有时间回答问题以进行澄清,我们继续吧。
看起来,您实际上在一个表中有四列有问题 - 但是,不应该有重复的列名。一旦它们是唯一的,以下应该起作用:

UPDATE SomeTable
SET company_ID_1 = IFNULL(company_ID_1, company_ID_2)
, company_Name_1 = IFNULL(company_Name_1, company_Name_2)
WHERE
company_ID_1 IS NULL
OR
company_Name_1 IS NULL
;

如果呈现的实际上是连接的输出,您可以将其替换为:

SELECT
IFNULL(SomeTable1.company_ID, SomeTable2.company_ID) company_ID
, IFNULL(SomeTable1.company_Name, SomeTable2.company_Name) company_Name
FROM SomeTable1
LEFT JOIN SomeTable2
ON SomeTable1.company_ID = SomeTable2.company_ID
UNION ALL
SELECT
IFNULL(SomeTable1.company_ID, SomeTable2.company_ID) company_ID
, IFNULL(SomeTable1.company_Name, SomeTable2.company_Name) company_Name
FROM SomeTable1
RIGHT JOIN SomeTable2
ON SomeTable1.company_ID = SomeTable2.company_ID
WHERE SomeTable1.company_ID IS NULL
ORDER BY company_ID
;

查看实际效果:SQL Fiddle

请评论,如果这需要调整/进一步的细节。

关于mysql - SQLYOG - SQL - 将两列合并为 1 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31254845/

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