加入同一个表的两列,忽略空值。 MySQL的

时间:2016-01-10 17:56:51

标签: mysql sql

我试图加入同一个表的两列但是,如果有空值(在我的情况下它们在第二列),我想要接受我感兴趣的行,而不是把null值,我放''。我要加入的列是SurnameName。换句话说,我试图使用:

SELECT CONCAT(CSurname, ' ', CName)
FROM Client;

这样,如果我有一个有效的surname值和一个null值,我获取null。我使用MySql,谢谢。

2 个答案:

答案 0 :(得分:0)

如果你想避免领先空间的问题,那么最简单的方法可能是CONCAT_WS()

SELECT CONCAT_WS(' ', CSurname, CName)
FROM Client;

与大多数其他函数不同,CONCAT_WS()忽略NULL值(分隔符除外),大大简化了这种逻辑 - 特别是当您使用两列以上时。

没有它,等效逻辑可以表示为:

SELECT CONCAT(COALESCE(CONCAT(CSurname, ' '), ''), COALESCE(CName, ''))

答案 1 :(得分:0)

尝试ifnull功能

SELECT CONCAT(CSurname, ' ', IFNULL(CName,'')) FROM Client;

我没有本地的mysql安装试用,但IFNULL功能应该达到你所需要的。