7

我有第 1 列和第 2 列,并希望将它们合并到同一张表的第 3 列中。如果第 2 列为空,则显示第 1 列值,如果第 1 列为空,则显示第 2 列数据。如果两者都为null,则显示null。我尝试了两件事:

1)使用 CONCAT SELECT CONCAT(Column1, Column2) AS Column3 FROM TEST_ATTRIBUTES

只有当它们都不为空时,它才会合并列。否则它只会打印空值。

2)使用(第1列+第2列)。

SELECT (Column1 + Column2) AS Column3 FROM TEST_ATTRIBUTES.

不显示所需的输出。

我正在用java编写这段代码。谢谢

4

1 回答 1

16

使用COALESCE(),这不会连接,而是返回列表中的第一个非空值。

SELECT Column1, 
       Column2, 
       COALESCE(Column1, Column2) AS Column3 
FROM   TEST_ATTRIBUTES

如果有可能它们都为空,

SELECT Column1, 
       Column2, 
       IF(Column1 IS NULL AND Column2 IS NULL, NULL, CONCAT(COALESCE(Column1,''), COALESCE(Column2,''))) AS Column3 
FROM   TEST_ATTRIBUTES
于 2013-04-17T14:31:49.750 回答