我有两列显示相同类型的信息但不一定是相同的数据。虽然每列重叠的某些数据可能/可能不包含也包含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问题,我怀疑这可能很容易做到。这可能吗?请让我知道!
一切都有帮助。
答案 0 :(得分:1)
由于您现在似乎无法回答问题需要澄清,所以让我们继续吧。
看来,实际上你确实在一个表中有四个列 - 但是,应该没有重复的列名。一旦它们是唯一的,以下应该有效:
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
如果需要调整/进一步详细说明,请发表评论。