当前位置: 首页 > 知识库问答 >
问题:

SQL查询以查找不带NULL的值

闻华容
2023-03-14

我怀疑我的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';

输出显示properly.currently我得到firstname和lastname。但对于某些条目,名和姓为空。我需要修改查询,以便我可以打印列的非空值if(last_id!=0和date(活动)=date(start_date),CONCAT(ag.firstname ,' ‘, ag.lastname ) ,’') 相同的查询,不包括名和姓的空条目。我尝试了不是空,但不工作。

请帮帮忙

共有2个答案

南宫星波
2023-03-14

我猜你可以在这里找到答案:如果任何字段包含NULL,MySQL CONCAT将返回NULL

也可以使用IFNull语法:

CONCAT(IFNull(ag.firstname.)、IFNull(ag.lastname.))

年凯康
2023-03-14

如果我理解正确,你有一个问题与NULLs。一个简单的解决方案是使用concat_ws()

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

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

 类似资料:
  • 问题内容: 如果我有一个看起来像这样的表: 还有一个THINGS表,如下所示: 我正在尝试提出一个纯SQL查询,该查询可以让我找出什么可以访问什么。基本上,我想要一个看起来像这样的查询: 并返回“ John”和“ Mary”。关键是访问事物所需的许可数量是任意的。 我觉得这应该很明显,但是我无法提出一个优雅的解决方案。首选与Oracle兼容的解决方案。 编辑: Kosta和JBrooks的解决方案

  • Sql查询来查找活动员工。根据employee id列降序对输出进行排序,只获取前15条记录。显示员工id、员工姓名、城市、州、国家、薪资、在职日期、状态、部门名称、经理姓名。雇员姓名:用空格字符连接firstname和lastname并只从雇员姓名中提取前10个字母经理姓名:显示firstname和lastname(用空格分隔) null

  • 问题内容: 我目前正在做类似物物交换系统的系统。这样的情况。客户(茉莉花)需要输入“ NAME”属性(她必须寻找的内容)并输入“ SEEK”属性(她需要寻找的内容)。为了获得结果,“ SEEK”属性必须与其他客户的“名称”属性匹配,而其他客户的“ SEEK”属性必须与Jasmine的“ HAVE”属性匹配。 例如我有表项(已经在数据库中) 例如,茉莉花具有“名称”属性的耳机和“搜索”属性的笔记本电

  • 问题内容: 我有一列的数据像 我需要编写一个SQL查询/过程,这将有助于我获取日期之间差异的平均值。对于上面的示例,它将是 (19 + 8 + 10)/3=12.33。 请提供帮助。 在此先感谢Geetha 问题答案: 我不知道您的RDBMS,但这是来自SQL Server。另外,您的计算之一是错误的-02/09/2011-13/08/2011是20,而不是19。 产生的结果是12.667:(20

  • 问题内容: 我正在使用Room库,具有DB Station,并想执行查询以获取具有/不具有过滤器的Station。 UPD。我有DAO,我想在我的数组(groupIds)为null或为空时获取所有记录,并且如果我在数组中有一个元素,则要获取过滤列表。 这时我遇到了一个问题 所以, 1)我可以检查要查询的null传递值并动态更改SQL查询吗? 2)如果是,我有什么语法问题? 问题答案: 交易是在SQ

  • 问题内容: 我想找到列的2nd,3rd,… nth个最大值。 问题答案: 您可以将列排序为降序格式,然后仅从第n行获取值。 编辑:: 根据评论请求进行了更新。 警告 完全未经测试! 类似于上面的内容对于Oracle应该适用…您可能必须首先正确使用语法!