我有第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编写这段代码。 感谢
答案 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