合并两个MySQL结果列,其中一个列或另一个列不为null

时间:2019-05-08 15:54:55

标签: mysql sql

我想将A列和B列中的结果合并为一列,减去NULL,然后将结果保留在A + B列中。我可以保证A或B都包含NULL。

我认为我可以通过以下方式完成此任务:

SELECT IFNULL(Table1.A, Table2.B) FROM `Table1`
  LEFT JOIN `Table2` ON
    *SOME ARBITRARY CONDITION*;

我试图获得可视化结果的图像:

enter image description here

1 个答案:

答案 0 :(得分:2)

您正在寻找COALESCE()

SELECT COALESCE(A, B, "") AS `A+B` FROM tbl

它返回不为NULL的第一个值。您可以使用任意多个值,甚至可以使用备用值。
(“”在我的示例中为空字符串)

或者,如果您不能不能保证只有一个值,而另一个则为NULL:

SELECT CONCAT_WS(",", A, B) AS `A+B` FROM tbl

如果同时设置了A和B,则将导致“ Apple,Pear”(A + B),而如果仅设置了A和B,将导致“ Apple”(仅A)或“ Pear”(B)。