我想将A列和B列中的结果合并为一列,减去NULL,然后将结果保留在A + B列中。我可以保证A或B都包含NULL。
我认为我可以通过以下方式完成此任务:
SELECT IFNULL(Table1.A, Table2.B) FROM `Table1`
LEFT JOIN `Table2` ON
*SOME ARBITRARY CONDITION*;
我试图获得可视化结果的图像:
答案 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)。