MySQL流程函数(case when、if等)

MySQL提供了丰富的内建函数,包括流程函数如Case When和If,它们能在SQL语句中实现选择,提高效率。流程函数常用于复杂的条件判断和逻辑处理,使得在SELECT、UPDATE、DELETE语句中实现更灵活的操作。
摘要由CSDN通过智能技术生成

函数能帮助用户做很多事情,比如说字符串的处理、数值的运算、日期的运算等,在这方面 MySQL 提供了多种内建函数帮助开发人员编写简单快捷的 SQL 语句,其中常用的函数有字符串函数、日期函数和数值函数。

在 MySQL 数据库中,函数可以用在 SELECT 语句及其子句(例如 where、order by、having等)中,也可以用在 update、delete语句及其子句中。

其它函数就不说了,单独来说一下流程函数。

流程函数

流程函数也是很常用的一类函数,用户可以使用这类函数在一个SQL语句中实现选择,这样能够提高语句的效率。

函数功能
IF(value, true, false)如果 value 是真,返回设定的第一个值,否则返回第二个
IFNULL(value, value2)如果 value 不为空,返回 value,否则返回 value2
CASE WHEN [value1] THEN [result1]…ELSE [default] END如果 value1 是真,返回 result1,否则返回 default
CASE [expr] WHEN [value1] THEN [result1]…ELSE [default] END如果 expr 等于 value1,返回 result1,否则返回 default(相当于 switch case 语句)
create table student(id int, name varchar(50), score decimal(9,2), sex char(1));
# sex 1 表示男,0表示女
insert into student values
(1, '小白', 100, '1'),
(2, '小红', 99, '0'),
(3, '小橙', 89, '1'),
(4, '小黄', 79, '0'),
(5, '小绿', 69, '1'),
(6, '小青', 59, '0'),
(7, '小蓝', 49, '1'),
(8, '小紫', 39, '0'),
(9, '小黑', 29, '1'),
(10, '小明', null, '0');

# IF 函数
SELECT IF(score >= 60, '及格', '不及格') from student;

# IFNULL 函数,这个函数一般用来替换NULL值,因为NULL值是无法参与运算的
SELECT IFNULL(score, 0) from student;

# CASE WHEN
SELECT name, (CASE WHEN score >= 90 THEN '优'
    WHEN score >= 80 and score < 90 THEN '良'
    WHEN score >= 60 and score < 80 THEN '中' 
    ELSE '不及格' END) as '成绩'
from student;

# CASE expr WHEN
SELECT SUM(case sex when '1' then 1 else 0 end) as 'boycount',
       SUM(case sex when '0' then 1 else 0 end) as 'girlcount'
from student

通常 case when 也是行转列的方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值