MySQL的if,case语句使用总结
Mysql的if既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用:
IF表达式
IF(expr1,expr2,expr3)
如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。
select *,if(sva=1,"男","女") as ssva from taname where sva != ""
作为表达式的if也可以用CASE when来实现:
select CASE sva WHEN 1 THEN '男' ELSE '女' END as ssva from taname where sva != ''
在第一个方案的返回结果中, value=compare-value。而第二个方案的返回结果是第一种情况的真实结果。如果没有匹配的结果值,则返回结果为ELSE后的结果,如果没有ELSE 部分,则返回值为 NULL。
例如:
SELECT CASE 1 WHEN 1 THEN 'one'WHEN 2 THEN 'two' ELSE 'more' END
as testCol
将输出one
IFNULL(expr1,expr2)
假如expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。
mysql> SELECT IFNULL(1,0);-> 1mysql> SELECT IFNULL(NULL,10);-> 10mysql> SELECT IFNULL(1/0,10);-> 10mysql> SELECT IFNULL(1/0,'yes');-> 'yes'
IFNULL(expr1,expr2)
的默认结果值为两个表达式中更加“通用”的一个,顺序为STRING、 REAL或 INTEGER。
IF ELSE 做为流程控制语句使用
if实现条件判断,满足不同条件执行不同的操作,这个我们只要学编程的都知道if的作用了,下面我们来看看mysql 存储过程中的if是如何使用的吧。
IF search_condition THEN statement_list
[ELSEIF search_condition THEN] statement_list ...
[ELSE statement_list]
END IF
与PHP中的IF语句类似,当IF中条件search_condition成立时,执行THEN后的statement_list语句,否则判断ELSEIF中的条件,成立则执行其后的statement_list语句,否则继续判断其他分支。当所有分支的条件均不成立时,执行ELSE分支。search_condition是一个条件表达式,可以由“=、<、<=、>、>=、!=”等条件运算符组成,并且可以使用AND、OR、NOT对多个表达式进行组合。
例如,建立一个存储过程,该存储过程通过学生学号(student_no)和课程编号(course_no)查询其成绩(grade),返回成绩和成绩的等级,成绩大于90分的为A级,小于90分大于等于80分的为B级,小于80分大于等于70分的为C级,依次到E级。那么,创建存储过程的代码如下:
create procedure dbname.proc_getGrade
(stu_no varchar(20),cour_no varchar(10))
BEGIN
declare stu_grade float;
select grade into stu_grade from grade where student_no=stu_no and course_no=cour_no;
if stu_grade>=90 then select stu_grade,'A';
elseif stu_grade<90 and stu_grade>=80 then select stu_grade,'B';
elseif stu_grade<80 and stu_grade>=70 then select stu_grade,'C';
elseif stu_grade70 and stu_grade>=60 then select stu_grade,'D';
else select stu_grade,'E';
end if;
END
注意:IF作为一条语句,在END IF后需要加上分号“;”以表示语句结束,其他语句如CASE、LOOP等也是相同的。
MySQL的if,case语句使用总结相关推荐
- MySQL 入门:Case 语句很好用
引言 MySQL CASE 是一个 MySQL 语句查询关键字,它定义了处理循环概念以执行条件集并使用 IF ELSE 返回匹配案例的方式. MySQL 中的 CASE 是一种控制语句,它验证条件案例 ...
- mysql触发器中case语句_一个很好的触发器例子(case when)
CREATE OR REPLACE TRIGGER TR_CGD1 BEFORE UPDATE OR INSERT OR DELETE ON BB_MJ_CGD1_TB FOR EACH ROW DE ...
- mysql case设固定值_MySQL CASE语句将自定义值放置为NULL
让我们首先创建一个表-mysql> create table DemoTable ( FirstName varchar(20) ); 使用插入命令在表中插入一些记录-mysql> ins ...
- MySQL使用IF语句以及用case语句对条件或结果进行判断
MySQL使用IF语句以及用case语句对条件或结果进行判断 一.前期准备 二.IF语句 1.场景一 2.场景二 三.CASE语句 一.前期准备 CREATE TABLE `t1` (`id` int ...
- mysql 中 case语句吗_Mysql中的Case语句
1.Case基本初识 case语句是mysql中的一个条件语句,可以在字段中使用case语句进行复杂的筛选以及构造新的字段.下面通过两个leetcode例子来详细解读case语句的功能: 1.1 Le ...
- MySQL CASE语句
MySQL CASE语句 如何使用MySQL 中CASE语句在存储的程序中构造复杂的条件语句. 除了IF语句],MySQL提供了一个替代的条件语句CASE. MySQL CASE语句使代码更加可读和高 ...
- mysql能用case嵌套sql吗,关于sqlserver中查询语句中嵌套case语句使用方法
ryxxlong的博客 Sql server 中的 CASE 语句文章, 链接 http://ryxxlong.iteye.com/blog/531221 写的比较详细,具体内容如下,主要用于自己以后 ...
- mysql之case_mysql存储过程之case语句
存储程序的CASE语句实现一个复杂的条件构造.如果search_condition求值为真,相应的SQL被执行.如果没有搜索条件匹配,在ELSE子句里的语句被执行. 语法: CASE case_val ...
- mysql的 case用法_mysql数据库case语句的使用方法
用case语句就可以很好的解决这个问题: 代码如下 复制代码 select a.master_id,sum(case when b.status=6 then 1 else 0 end) as to ...
- Mysql 中Sql控制流语句_DCL语句/控制流语句
一.(1)DCL(数据控制语言)主要是数据库管理员用来管理其他用户权限时使用的语句:可以授予的权限包括以下: 列权限:和表中的一个具体列相关.表权限:和一个具体数据表中的所有数据相关.数据库权限:和一 ...
最新文章
- Docker系列 二. Docker 安装 Nginx
- 局域网语音通话demo
- 图解插入排序--直接插入排序
- 多线程Socket的InputStream的困扰一天才解决的问题
- Unity(四)IocContainer 封装类库
- 谈谈重载(overload)覆盖(override)与隐藏
- CentOS7.3编译安装php7.1
- 深度学习的最新研究进展(三)
- reduce端的连接实现
- ubuntu解决软件下载速度过慢
- DNS是什么意思?DNS怎么设置?
- 华为机试题 好友关系管理
- 【Python程序设计】实验4:字符串与正则表达式
- 大数据社会的十三大具体应用场景(二)
- Transact-SQL基础语言(数据检索)
- 自步对比学习(Self-paced Contrastive Learning with Hybrid Memory for Domain Adaptive Object Re-ID)
- C/S构架和B/S构架
- Web 应用程序防火墙 (WAF)
- 创建利于Google网站的步骤
- Linux红旗语言,如何改变红旗linux控制面板语言