如何在select语句中连接可能包含NULL值的两列?

时间:2017-01-25 21:45:55

标签: mysql sql select

我尝试过:

SELECT CONCAT(col1, col2) AS NewCol FROM tableName

仅当col1和col2不为null时才有效,否则NewCol变为null,即使col1和col2中的一个不为null。我希望它显示任何可用的值。

3 个答案:

答案 0 :(得分:1)

使用CONCAT_WS

SELECT CONCAT_WS('', col1, col2) AS NewCol FROM tableName

如果值均为null,则返回空字符串。

文档:

  

CONCAT_WS(分离器,STR1,STR2,...)

     

CONCAT_WS()代表Concatenate With Separator,是CONCAT()的一种特殊形式。第一个参数是其余参数的分隔符。在要连接的字符串之间添加分隔符。分隔符可以是字符串,其余参数也可以。如果分隔符为NULL,则结果为NULL。

答案 1 :(得分:0)

您可以使用 CONCAT_WS 。它的NULL安全。第一个参数是分隔符。

<强>样品

MariaDB [l]> SELECT CONCAT_WS('',NULL,'123');
+--------------------------+
| CONCAT_WS('',NULL,'123') |
+--------------------------+
| 123                      |
+--------------------------+
1 row in set (0.00 sec)

MariaDB [l]>

答案 2 :(得分:0)

您也可以使用

SELECT ISNULL([col1],'') + ISNULL([col2],'') AS NewCol FROM tableName