16、条件函数

1、CASE WHEN

  • 语法(简单函数)
case 字段 when 预期值 then 结果1 else 结果2 end

case when 语句能在SQL语句中放入判断逻辑,类似Java、python中学习的 if else 语句。

case when 语句分为简单函数和条件表达式。

  • 举例

查询students中的name,和gender,如果是M改为男,F改为女

name

gender

小明

小红

小军

小米

小白

小兵

小林

小新

小王

小丽

 

  • 语法(条件表达式)
case when 条件判断 than result1 else result2 end

当条件判断为真是返回result1,否则返回result2,如果没有else则返回null。case 和 end之间可以有多个when ....... then ......else 语句,end表示case语句结束。

  • 举例

查询students中的name,然后根据score划分等级grade

60以下不及格,60到90良好,90以上优秀

select name, (case 
when score < 60 then '不及格' 
when score >=61 and score <= 90 then '良好' 
when score >= 91 then '优秀' 
end ) 
as grade from students;

name

grade

小明

良好

小红

优秀

小军

良好

小米

良好

小白

良好

小兵

不及格

小林

良好

小新

优秀

小王

良好

小丽

良好

 

2、IF

  • 语法
if (表达式,result_true,result_false)

当表达式结果对时,返回result_true,否则返回result_false。

  • 举例

查询students中的name,和gender,如果是M改为男,F改为女

select name, if (gender='M', '男', '女') as gender from students;

name

gender

小明

小红

小军

小米

小白

小兵

小林

小新

小王

小丽

再比如:看一个班男生女生有多少人

select sum(if(gender='M',1,0)) as male, 
sum(if(gender='F',1,0)) as female 
from students;

male

female

5

5

 

3、IFNULL

在程序中调用sql语句时,如果返回结果是null,是非常容易引发一些意外情况,因此希望在sql中做一些处理,如果查询结果是null ,就转为特定的值,就要用到Mysql中 ifnull 函数。

sql一般写法是:

select salary from student where name='张三';

使用ifnull 进行改写:

select ifnull(salary,0) salary from student where name='张三';

但使用ifnull 语句,如果where 条件中name 值是不存在的,那么仍将返回null 。

返回结果:null 
select ifnull(salary,0) salary from student where name='张三';
返回结果:0 
select ifnull((select salary from student where name='张三'),0) salary;

在实际应用中,如果确定where 条件的值一定存在,使用者可以使用前者,否则要用后者。ifnull 函数还可以结合聚合函数使用。avg、count等用同样方式处理,而且,无论where条件存不存在,结果都会返回0。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
lambda条件求和函数可以通过lambda函数来实现。在给定的例子中,我们可以使用以下代码来实现lambda条件求和函数: ```python def get_sum(nums: list): n = sum(nums) if len(nums) % 2 == 0: return lambda x, y: n * x else: return lambda x, y: -y * n ``` 在这个函数中,我们首先计算了数组nums的总和,并根据数组长度的奇偶性返回不同的lambda函数。如果数组长度为偶数,lambda函数将返回n乘以x的结果;如果数组长度为奇数,lambda函数将返回-y乘以n的结果。这样,我们就可以根据不同的条件对数组元素进行求和操作。 #### 引用[.reference_title] - *1* [Lambda求和函数在excel上的应用](https://blog.csdn.net/anwei20000/article/details/128062225)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [(Python-使用 lambda 函数对列表进行求和)个人学习记录 2023/3/16](https://blog.csdn.net/weixin_42815170/article/details/129582974)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值