背景
今天在做一个需求,大致就是根据卡的logo去匹配,卡片的主卡数量、附属卡数量、激活卡数量、未激活卡数量、销卡数量等。当时以为要写很多sql,后来问了下同事说可以用case when写一条sql就能搞定,当时那个开心啊就是这样的O(∩_∩)O哈哈~!所以今晚抽空好好补下case when的用法。
1、case when使用方法
Case具有两种格式。简单Case函数和Case搜索函数。
第一种格式简单case函数:
case 列名
when 条件值1 then 选项1
when 条件值2 then 选项2.......
else 默认值 end
第二种格式Case搜索函数:
case
when 列名= 条件值1 then 选项1
when 列名=条件值2 then 选项2.......
else 默认值 end
比较: 两种格式,可以实现相同的功能。
简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。还有一个需要注意的问题,Case函数只返回第一个符合条件的 值,剩下的Case部分将会被自动忽略。
由于今天电脑中数据库挂了,先不写例子。等在装好数据库补上。