SQL语句流程函数
来源:互联网 发布:逸夫淘宝秒杀神器 编辑:程序博客网 时间:2024/05/24 07:40
SQL语句流程函数
流程函数是MySQL相对常用的一类函数, 用户可以使用这类函数在一个SQL语句中实现条件选择, 这样能够提高效率.
下面列出了MySQL跟条件有关的流程函数
下面的例子中模拟对职员进行分类,首先创建一个职员薪水表:
1
create
table
salary(userid
int
, salary
decimal
(9,2));
插入一些测试数据
1
insert
into
salary
values
(1,1000),(2,2000),(3,3000),(4,4000),(5,5000),(1,
null
);
数据如下
1
2
3
4
5
6
7
8
9
10
11
12
mysql>
select
*
from
salary;
+
--------+---------+
| userid | salary |
+
--------+---------+
| 1 | 1000.00 |
| 2 | 2000.00 |
| 3 | 3000.00 |
| 4 | 4000.00 |
| 5 | 5000.00 |
| 1 |
NULL
|
+
--------+---------+
6
rows
in
set
(0.00 sec)
接下来, 通过这个表来介绍各个函数的应用.
IF(expr1,expr2,expr3)函数: 这里认为月薪在2000元以上的职员属于高薪, 用"high'表示; 而2000以下的职员属于低薪, 用'low'来表示.
1
2
3
4
5
6
7
8
9
10
11
12
mysql>
select
if(salary>2000,
'high'
,
'low'
)
from
salary;
+
--------------------------------+
| if(salary>2000,
'high'
,
'low'
) |
+
--------------------------------+
| low |
| low |
| high |
| high |
| high |
| low |
+
--------------------------------+
6
rows
in
set
(0.00 sec)
IFNULL(expr1,expr2)函数: 这个函数一般用来替换NULL值, 我们知道NULL值是不能参参与数值运算的, 下面这个语句就是把NULL值用0替换.
1
2
3
4
5
6
7
8
9
10
11
12
mysql>
select
ifnull(salary,0)
from
salary;
+
------------------+
| ifnull(salary,0) |
+
------------------+
| 1000.00 |
| 2000.00 |
| 3000.00 |
| 4000.00 |
| 5000.00 |
| 0.00 |
+
------------------+
6
rows
in
set
(0.00 sec)
CASE WHEN [value1] THEN[result1]… ELSE[default] END函数:这里可以用case when..then函数实现上面例子中高薪低薪的问题.
1
2
3
4
5
6
7
8
9
10
11
12
mysql>
select
CASE
WHEN
salary<=2000
THEN
'low'
else
'high'
END
from
salary;
+
---------------------------------------------------+
|
CASE
WHEN
salary<=2000
THEN
'low'
else
'high'
END
|
+
---------------------------------------------------+
| low |
| low |
| high |
| high |
| high |
| high |
+
---------------------------------------------------+
6
rows
in
set
(0.00 sec)
CASE [expr] WHEN [value1] THEN[result1]… ELSE[default] END函数:这里还可以分为多种情况把职员的薪水分为多个档次,比如下面的例子分成高、中、低3种情况。同样可以分成更多种情况,这里不再举例了,有兴趣的朋友可以自己测试一下
1
2
3
4
5
6
7
8
9
10
11
12
mysql>
select
CASE
salary
WHEN
1000
THEN
'low'
when
2000
THEN
'mid'
ELSE
'high'
END
from
salary;
+
-----------------------------------------------------------------------+
|
CASE
salary
WHEN
1000
THEN
'low'
when
2000
THEN
'mid'
ELSE
'high'
END
|
+
-----------------------------------------------------------------------+
| low |
| mid |
| high |
| high |
| high |
| high |
+
-----------------------------------------------------------------------+
6
rows
in
set
(0.00 sec)
标签: MySQL 流程函数
0 0
- SQL语句流程函数
- SQL流程控制语句
- SQL流程控制语句
- sql流程控制语句
- T-SQL流程控制语句
- PL/SQL流程控制语句
- SQL SERVER 流程控制语句
- PL/SQL流程控制语句
- Sql常用函数语句
- Sql常用函数语句
- sql 语句 转换函数
- SQL语句字符串函数
- SQL 语句 时间函数
- sql语句函数
- SQL语句函数大全
- SQL语句to_date函数
- SQL语句decode函数
- sql语句中函数
- Shell判断字符串包含关系的几种方法
- redhat7.2安装saltstack
- Codeforces Round #303 (Div. 2) D. Queue —— 贪心
- Shell学习之路-(02-文件的权限修改)
- JS-笔记
- SQL语句流程函数
- Python-unittest---测试用例批量执行
- Java中的string类型
- 做过的项目
- 基于用户投票的排名算法
- iOS经典错误Undefined symbols for architecture XXX:
- 浅析Linux中的零拷贝技术
- 如何快速转载CSDN中的博客
- ImportError: cannot import name webdriver解决方案