SQL查询以查找没有NULL的值

时间:2017-06-15 00:02:48

标签: mysql sql

我对我的SQL有疑问。

请查询

select a.id, a.phone, b.list,c.ctitle,l,
       if(last_id!=0 and date(activity)=date(start_date), 
       CONCAT(ag.firstname,' ‘,ag.lastname) ,’')
from table name a 
left join <all other tables>
where a.cid = '100' and a.date between '2013-05-01' and '2015-06-14';

输出显示正确。目前我得到名字和姓氏。但对于某些条目,名字和姓氏为空。我需要修改查询,以便我可以打印列的非空值if(last_id!= 0和date(activity)= date(start_date),CONCAT(ag.firstname,&#39;' ,ag.lastname),'&#39;)即同一查询,不包括名字和姓氏的空条目。我试过IS NOT NULL但没有工作。

请帮忙

2 个答案:

答案 0 :(得分:4)

如果我理解正确,那么NULL就会出现问题。一个简单的解决方案是使用concat_ws()

   concat_ws(' ', ag.firstname, ag.lastname)

如果任一名称为NULL,则在连接中忽略它。

答案 1 :(得分:0)

我想你可以在这里找到答案:MySQL CONCAT returns NULL if any field contain NULL

你也可以使用IFNull语法:

  

CONCAT(IFNull(ag.firstname,''),IFNull(ag.lastname,''))