在一列中合并两列

时间:2013-04-17 14:30:43

标签: mysql sql

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

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

只有在两列都不为空时才合并列。否则它只是prins null。

2)使用(column1 + column 2)。

SELECT (Column1 + Column2) AS Column3 FROM TEST_ATTRIBUTES

没有显示所需的输出。

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

1 个答案:

答案 0 :(得分: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