我试图加入同一个表的两列但是,如果有空值(在我的情况下它们在第二列),我想要接受我感兴趣的行,而不是把null值,我放''
。我要加入的列是Surname
和Name
。换句话说,我试图使用:
SELECT CONCAT(CSurname, ' ', CName)
FROM Client;
这样,如果我有一个有效的surname值和一个null值,我获取null。我使用MySql,谢谢。
答案 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功能应该达到你所需要的。