900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > MySQL 判断语句 条件函数 case when if ifnull

MySQL 判断语句 条件函数 case when if ifnull

时间:2022-03-14 23:53:02

相关推荐

MySQL 判断语句 条件函数 case when if ifnull

在MySQL中,需要用到条件判断函数,例如 case when、if、ifnull。

一、方法分类

二、具体方法

(1)if

if(expr,result_true,result_false)

注意:一个条件表达式两个结果

expr:条件表达式;如果结果为true,则返回result_true,否则返回result_false。

(2)ifnull

ifnull(result,value)

注意:如果查询结果是null,就转换为特定的值

result:查询结果;value:如果查询结果为null,则返回value,否则返回result。

(3)case when

casewhen 条件1 then 结果1when 条件2 then 结果2...when 条件n then 结果nelse 结果mend

注意:在同一条判断语句中可以有一个到多个判断条件

else:如果查询结果不满足when里面的任何一个条件,返回else后的结果m;判断条件按语句顺序执行,如果查询结果既符合条件1又符合条件2,那么只能得到结果1;case when 语句大多在select 查询列里面使用。

三、实例

students 表(id表示主键,name是姓名,score是平均成绩)

统计不同性别的学生人数

selectcount(if(gender='男',1,null)) as man_number,sum(if(gender='女',1,0)) as woman_numberfrom students#统计结果:男生人数2,女生人数1

如果name为null,用未知替换

selectid,ifnull(name,'未知') as name,gender,scorefrom students

如果score大于等于90level为优秀,大于等于80小于90为良好,大于等于60小于80为及格,小于等于60为不及格

selectname,score,(casewhen score >= 90 then '优秀'when score >= 80 then '良好'when score >= 60 then '及格'else '不及格'end) levelfrom students

创建 students 表的代码

-- ------------------------------ Table structure for students-- ----------------------------DROP TABLE IF EXISTS `students`;CREATE TABLE `students` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学生id',`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '姓名',`gender` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '性别',`score` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '成绩',PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of students-- ----------------------------INSERT INTO `students` VALUES (1, '李明', '男','99');INSERT INTO `students` VALUES (2, null, '男','67');INSERT INTO `students` VALUES (3, '孙华', '女','59');

非常荣幸您能阅读到最后,希望文章中的内容能够帮助到您。

本博客内容均为博主原创,未经授权,请勿转载,谢谢!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。