创新路
我们一直在努力

MySQL学习笔记(14)

流程控制函数

1. if(表达式1,表达式2,表达式3

作用:当表达式1满足条件时执行表达式2,否则执行表达式3

输出结果大于

SELECT IF(3>2,'大于''小于');

2. case函数

引入:javaswitch-case

switch(变量或表达式){

    case 常量1:语句1

        break;

    case 常量2:语句2

        break;

    …

     default 常量n:语句1

        break;

}

Mysql中的case使用一:

CASE 要判断的字段或表达式

WHEN 常量1 THEN 要显示的值或者语句(如果要显示的是语句则末尾处要加分号)

WHEN 常量2 THEN 要显示的值或者语句(如果要显示的是语句则末尾处要加分号)

ELSE 常量N THEN 要显示的值或者语句(如果要显示的是语句则末尾处要加分号)

END

举个栗子:

查询员工的工资      要求:

*    部门编号 = 30 ;显示的工资为1.1

*    部门编号 = 40 ;显示的工资为1.2

*    部门编号 = 50 ;显示的工资为1.3

*    部门编号 = 其他 ;显示的工资为原工资

SELECT department_id,salary 原始工资,

CASE department_id

WHEN 30 THEN salary*1.1

WHEN 40 THEN salary*1.2

WHEN 40 THEN salary*1.3

ELSE salary

END AS 新工资

FROM employees;

适合等值判断

Mysql中的case使用二:

引入java中的多重if

if(条件1){

    语句1

}else if(条件2){

    语句2

}….

 else{

      语句n;

   }

mysql中:

CASE

WHEN 条件1 THEN 要显示的值1或语句(如果要显示的是语句则末尾处要加分号)

WHEN 条件2 THEN 要显示的值2或语句(如果要显示的是语句则末尾处要加分号)

….

ELSE 要显示的值n或语句(如果要显示的是语句则末尾处要加分号)

END

举个栗子:

查询员工的工资情况     要求:

* 工资级别大于 8000 ;显示 A 级别

* 工资级别大于 5000 ;显示 B 级别

* 工资级别大于 4000 ;显示 C 级别

* 否则显示D级别

SELECT salary,

CASE

WHEN salary > 8000 THEN 'A'

WHEN salary > 5000 THEN 'B'

WHEN salary > 4000 THEN 'C'

ELSE  'D' AS 工资级别

FROM employees;

适合区间判断

未经允许不得转载:天府数据港官方信息博客 » MySQL学习笔记(14)

客官点个赞呗! (0)
分享到:

评论 抢沙发

评论前必须登录!

天府云博 - 做有态度的开发&运维&设计学习分享平台!

联系我们百度云主机