`

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);
        -> 1

mysql> SELECT IFNULL(NULL,10);
        -> 10

mysql> SELECT IFNULL(1/0,10);
        -> 10

mysql> 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的if既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用: IF表达式 代码如下: IF(expr1,expr2,expr3) 如果 expr1 是TRUE (expr1 &lt;&gt; 0 and expr1 &lt;&gt; NULL),则 IF()的...

    mysql if语句的使用,10多年工作总结

    MySQL IF语句的使用,10多年工作总结 MySQL 的 IF 语句是一种流程控制语句,用于实现简单的逻辑判断。今天,我们将详细介绍 IF 语句的使用方法和场景分析。 一、背景介绍 在 MySQL 中,IF 语句是一种基本的流程...

    mysql if语句的使用

    本文将详细介绍 MySQL 中的 IF 语句的使用,包括 IF(expr,v1,v2)、IFNULL(v1,v2) 和 CASE 语句。 一、IF(expr,v1,v2) 语句 IF(expr,v1,v2) 语句是 MySQL 中最基本的条件判断语句,语法格式如下: ```sql IF(expr, ...

    详细解析 mysql 中的 case when 语句的使用

    - CASE语句可以根据一个表达式的值与一系列的比较值进行匹配,当找到匹配的值时,返回对应的值。 - 如果没有找到匹配的值,且存在ELSE子句,则返回ELSE子句中的值;若不存在ELSE子句,则返回NULL。 3. **应用场景...

    MySQL数据库:流程控制语句case.pptx

    2)掌握 —— CASE语句的使用方法; case语句 CASE语句语法格式为: 第一种: CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list] END CASE ...

    mysql存储过程之case语句用法实例详解

    总结来说,MySQL的CASE语句是处理有条件逻辑的关键部分,无论是在存储过程还是查询中,都能提高代码的可读性和效率。通过灵活运用简单CASE和可搜索CASE,可以构建复杂的数据处理逻辑,满足各种业务需求。在实际应用...

    MySQL中使用case when 语句实现多条件查询的方法

    在MySQL数据库中,`CASE WHEN` 语句是一种强大的条件表达式,用于在查询中进行复杂的逻辑判断。本文将深入探讨如何使用`CASE WHEN`语句实现多条件查询,特别是针对给定的示例场景。 首先,让我们了解`CASE WHEN`的...

    mysql与oracle差异总结

    MySql 中的 CASE WHEN 语句可以替换 DECODE 函数。MySql 中的 TEXT 等同于 Oracle 中的 LONG 函数。 13. 日期函数 MySql 中的 EXTRACT 函数可以提取日期的年、月、日等信息,而 Oracle 需要使用 TO_CHAR 函数来...

    mysql的sql语句特殊处理语句总结(必看)

    查询语句使用 `LIKE` 操作符来匹配含有特定字符串 `%data%` 的任何字段。 除了这些,还有其他一些常用的特殊处理语句: 4. **`CASE` 语句**: - `CASE` 语句允许根据条件执行不同的操作。例如,你可以根据某些...

    Mysql基础,最基本的mysql操作语句

    Mysql 基础知识点总结 Mysql 是一种关系型数据库管理系统,主要用于存储和管理数据。下面是 Mysql 的基础知识点...以上是 Mysql 的基础知识点总结,包括 DDL 语句、DML 语句、DQL 语句、多表查询、函数、约束等操作。

    case when和sum case when 写法及拼接字段

    它的工作原理类似于编程语言中的 `if...else` 语句,但在 SQL 中用于创建动态列或进行复杂的条件判断。 #### 基本语法 ```sql CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE ...

    mysql语句集合包括模糊查询索引函数

    MySQL提供了丰富的内置函数,包括算术函数(如SUM、AVG)、字符串函数(如CONCAT、SUBSTRING)、日期/时间函数(如DATE_ADD、NOW)、逻辑函数(如IF、CASE WHEN)等。这些函数极大地增强了SQL语句的功能性和灵活性,...

    MySQL排序中使用CASE WHEN的方法示例

    以下是一个关于如何在MySQL排序中使用`CASE WHEN`方法的详细说明。 ### 1. `CASE WHEN` 基本语法 `CASE WHEN` 的基本语法如下: ```sql CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ...

    mysql中写判断语句的方法总结

    这时可以使用扩展的CASE语句,如下所示: ```sql SELECT id, name, (CASE status WHEN 1 THEN '有效' WHEN 2 THEN '无效' ELSE '其他' END) AS status FROM user; ``` 这个查询会根据status字段的值返回用户...

    Mysql常用sql语句汇总

    在SQL语言中,MySQL是一种广泛使用的数据库...这些只是MySQL SQL语句的一部分,实际使用中还有更多复杂操作,如视图、存储过程、触发器、事务处理等。理解并熟练掌握这些基本操作,将有助于更高效地管理和操作数据库。

    MySQL高级视频教程

    SQL编程中变量的定义,if语句,case语句,循环语句的使用; 通过学习函数,掌握在mysql中自定义函数,扩展mysql功能 学习存储过程,轻松封装代码块,提高开发效率; 掌握触发器,丰富功能,减少代码量。

    mysql case when group by 实例详解

    MySQL中的`CASE WHEN`语句是一种条件判断表达式,它在SQL查询中起到了类似编程语言中`switch-case`或`if-else`的作用。这个功能强大的工具允许你在单个查询中根据不同的条件返回不同的结果值,非常适合数据分析和...

Global site tag (gtag.js) - Google Analytics