mysql if语句后面执行两个语句_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,"男","女")asssva fromtaname wheresva !=""
作为表达式的if也可以用CASE when来实现:
selectCASE sva WHEN 1THEN '男'ELSE '女'ENDasssva fromtaname wheresva !=''
在第一个方案的返回结果中, value=compare-value。而第二个方案的返回结果是第一种情况的真实结果。如果没有匹配的结果值,则返回结果为ELSE后的结果,如果没有ELSE 部分,则返回值为 NULL。
例如:
SELECT CASE 1WHEN 1THEN 'one'WHEN 2THEN 'two'ELSE 'more'ENDastestCol
将输出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]ENDIF
与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))BEGINdeclare stu_grade float;selectgrade intostu_grade fromgrade wherestudent_no=stu_no andcourse_no=cour_no;ifstu_grade>=90thenselectstu_grade,'A';elseif stu_grade<90andstu_grade>=80thenselectstu_grade,'B';elseif stu_grade<80andstu_grade>=70thenselectstu_grade,'C';elseif stu_grade70 andstu_grade>=60thenselectstu_grade,'D';elseselectstu_grade,'E';endif;END
注意:IF作为一条语句,在END IF后需要加上分号“;”以表示语句结束,其他语句如CASE、LOOP等也是相同的。
mysql if语句后面执行两个语句_MySQL的if,case语句使用总结相关推荐
- mysql 值到99999后不增值了_MySQL数据库之更新语句精解(一)
用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句.言外之意,就是对数据进行修改.在标准的SQL中有3个语句,它们是INSE ...
- mysql 中 case语句吗_Mysql中的Case语句
1.Case基本初识 case语句是mysql中的一个条件语句,可以在字段中使用case语句进行复杂的筛选以及构造新的字段.下面通过两个leetcode例子来详细解读case语句的功能: 1.1 Le ...
- C语言中for语句的执行步骤是什么,C语言中for语句的执行过程是怎样的
C语言中for语句的执行过程是怎样的 发布时间:2020-07-27 13:48:19 来源:亿速云 阅读:122 作者:Leah 这期内容当中小编将会给大家带来有关C语言中for语句的执行过程是怎样 ...
- php case语句吗,【PHP公开课|关于PHP switch case语句,你知道怎么用吗,这个例子你一定要来看看】- 环球网校...
[摘要]PHP作为一种超文本预处理器,已经成为了我们常用的网站编程语言,并且结合了C语言,Java等我们常见的编程语言,所以,有很多web开发领域的新人都看中了他的使用广泛性,有很多人都想了解php的 ...
- python语句的执行结果是_以下是 print( \nPython)语句运行结果的是().
下n语周懿王励精图治,政通人和,有一段中兴时间,但是之后周朝走向衰弱.() 句运俭近仁出自( ). "靡不有初,行结鲜克有终."是司马光最早提出的. 下n语第一辆蒸汽公共汽车的发明 ...
- MySQL中删除数据的两种方法_MySQL删除数据库的两种方法
本文为大家分享了两种MySQL删除数据库的方法,供大家参考,具体内容如下 第一种方法:使用 mysqladmin 删除数据库使用普通用户登陆mysql服务器,你可能需要特定的权限来创建或者删除 MyS ...
- mysql取最接近的两个值_Mysql:获取一行中另一个字段的最高值和最...
我有一个(MySQL)表,有两个日期/时间字段:开始和结束(每个类型的日期时间).我需要一个查询,它为我提供从开始的最低值和特定用户的最高值和定义的日期.我终于成功了以下查询: SELECT job. ...
- mysql查询的金额保留两位小数_mysql查询结果单位换算后保留两位小数
数据库表中sale列的值为23456.789 format函数 说明:format(x,d)是mysql自带的格式化小数函数,format()函数会对小数部分进行四舍五入操作,整数部分从右向左每三位一 ...
- SQL中的条件语句case-when-then-else(就像C中的switch case语句)
select u_id , u_name , u_score ,case when u_score >= 65.45 then '优秀'when u_score >=60 and u_sc ...
最新文章
- Bicolor软件 中 GATB
- oracle的用户自定义异常
- 简单记录一下使用python pyppeteer爬取努努书坊的爬虫
- mysql 5.1.53_mysql 5.1.53免安装版的优化配备和精简
- 错误:在非结构或联合中请求成员‘next’
- 大批量安装系统的解决方案(集锦)
- python编写登录接口_Python之编写登录接口
- 【学术杂谈】施一公:论文和科技实力是两回事,大家千万要分开
- 企业——Redis的高可用的搭建
- Java泛型原理、类型擦除
- 单片机固件烧录器 Firmware Writer Android APP
- 产品体系建模工具软件
- Unity素材、动画设计类常用插件
- 手机内存文件夹html,手机内存不够用?这6个文件夹要定时清理,至少能省下2个G...
- oracle触发器update本表数据
- boost::asio 学习
- NEFU OJ 1266-快乐的雨季-线段树【题解】
- Photoshop(CC2020)未完
- CSP-M4补题 B_ZJM要抵御宇宙射线
- Acrel-3000在青岛中冶圣乔维斯南区智能住宅小区的应用