case when 函数的使用实例

先简单说点case函数的概念,

case()函数有两种形式,

第一种:                       case  when 条件1 then 结果1 

                                              when 条件2 then 结果2                                                            

                                              when 条件3 then 结果3

                                              else 结果3 end;

第二种:                     case  字段名

                                          when 条件1 then 结果1

                                          when 条件2 then 结果2 

                                          else 结果3 end;

第一种成为case搜索函数,第二种为case简单函数,这里主要讲解的是第一种函数的用法,感觉懂了第一种,第二种很好理解。

实例:

case      when b.grp_name1 <> '' and a.poi_name  like concat('%',b.grp_name1,'%')  then b.grp_name 
             when b.grp_name1 <> '' and a.poi_name1  like concat('%',b.grp_name1,'%') then b.grp_name

             else '' end as grp_name

    这是工作建表中的一个字段判断语句,case when函数关键字用红色标明,sql语句中所判断的条件有四个,依次判断b.grp_name1字段,注意一点的是,当满足条件一的时候整个判断结束,也就是说执行流程为看条件1是否满足,满足的话则b.grp_name1 = b.grp_name,如果不满足则执行下一条判断语句,同上,如果都不满足的话则执行else后面语句,在这里即为空。

      附带一个:这里判断条件中还用到一个concat()函数,这个函数作用主要是把字符串连接起来,这个好处在于,它可以组合字段名和字符串的连接,一般我们在模糊匹配的时候用的最多的就是'%value%',但是当这个value不是一个具体的值,而是一个字段名的时候这样方法没法实现。所以就有了concat('%',value,'%'),这个函数所要连接的字段中如果有一个为null,则会返回结果null。

猜你喜欢

转载自blog.csdn.net/weixin_42382211/article/details/80773483