MySQL流程函数

MySQL流程函数

IF(value,x y) 如果value是真,返回x,否则返回y
MariaDB [learn]> INSERT INTO salary(sal) VALUES (1000),(2000),(3000),(4000),(5000),(6000),(NULL);
Query OK, 7 rows affected (0.06 sec)
Records: 7  Duplicates: 0  Warnings: 0

MariaDB [learn]> SELECT * FROM salary;
+----+------+
| id | sal  |
+----+------+
|  1 | 1000 |
|  2 | 2000 |
|  3 | 3000 |
|  4 | 4000 |
|  5 | 5000 |
|  6 | 6000 |
|  7 | NULL |
+----+------+

MariaDB [learn]> SELECT id,if(sal>2000,'high','low') FROM salary;
+----+---------------------------+
| id | if(sal>2000,'high','low') |
+----+---------------------------+
|  1 | low                       |
|  2 | low                       |
|  3 | high                      |
|  4 | high                      |
|  5 | high                      |
|  6 | high                      |
|  7 | low                       |
+----+---------------------------+
7 rows in set (0.01 sec)
IFNULL(value1,value2) 如果value1不为空,返回value1,否则返回value2

IFNULL(value1,value2)函数:这个函数一般用来替换NULL值,我们知道NULL值是不能参与数值运算的,下面这个语句就是把NULL值用0来替换。

MariaDB [learn]> SELECT id,ifnull(sal,0) FROM salary; 
+----+---------------+
| id | ifnull(sal,0) |
+----+---------------+
|  1 |          1000 |
|  2 |          2000 |
|  3 |          3000 |
|  4 |          4000 |
|  5 |          5000 |
|  6 |          6000 |
|  7 |             0 |
+----+---------------+
7 rows in set (0.01 sec)

CASE WHEN [value] THEN [result]…ELSE [default] END 如果value为真 ,返回result,否则返回default

CASE WHEN [value] THEN [result]…ELSE [default] END函数:这里也可以用case when…then 实现上面例子中的高薪低能的问题。

MariaDB [learn]> SELECT id,case when sal<=2000 then 'low' else 'high' end FROM salary;
+----+------------------------------------------------+
| id | case when sal<=2000 then 'low' else 'high' end |
+----+------------------------------------------------+
|  1 | low                                            |
|  2 | low                                            |
|  3 | high                                           |
|  4 | high                                           |
|  5 | high                                           |
|  6 | high                                           |
|  7 | high                                           |
+----+------------------------------------------------+
7 rows in set (0.01 sec)

CASE [expr] WHEN [value] THEN [result]…ELSE [default] END 如果expr等于value,返回result,否则返回default。

CASE [expr] WHEN [value] THEN [result]…ELSE [default] END函数:这里可以分多种情况把职员的薪水分多个档次,比如下面的例子成分高、中、低3种情况。同样还可以分成更多情况,这里就不再举例了。

MariaDB [learn]> SELECT id,CASE sal WHEN 1000 THEN 'low' WHEN 2000 THEN 'mid' ELSE 'low' END AS LEVEL FROM salary;  
+----+-------+
| id | LEVEL |
+----+-------+
|  1 | low   |
|  2 | mid   |
|  3 | low   |
|  4 | low   |
|  5 | low   |
|  6 | low   |
|  7 | low   |
+----+-------+
7 rows in set (0.01 sec)

原创文章,作者:dance_man,如若转载,请注明出处:http://www.178linux.com/74581

(0)
dance_mandance_man
上一篇 2017-05-01
下一篇 2017-05-02

相关推荐

  • 马哥教育网络班20期+第一周课程练习

    一、计算机的组成及其功能。 计算机是由几个单元所组成,输入单元,输出单元,运算器,控制器,存储器,5大单元组成  1、运算器 又称运算器又称算术逻辑单元,它是计算机对数据进行加工处理的部件,包括算术运算(加、减、乘、除等)和逻辑运算(与、或、非、异或、比较等)。 2、控制器 负责从存储器中取出指令,并对指令进行译码;根据指令的要求,按时间的先后顺序…

    Linux干货 2016-06-23
  • locate、find命令使用总结

    一、简介    在linux系统中存在"一切皆文件"的说法,这就足以说明文件的重要性,因此查找文件也是我们必须要掌握的技能。这时候熟练使用locate、find命令也就显得至关重要。尤其是find命令常用于日常工作中如安装完某个软件之后要查看这些软件的安装配置路径,或是需要按指定条件直接查找我们需要操作的文件。因此更需…

    Linux干货 2015-08-31
  • 关于shell脚本基础编程第五篇

                  shellb编程基础第五篇              本章内容:数组 变量:存储单个元素的内存空间数组:存储多个元素的连续的内存空间…

    系统运维 2016-08-24
  • Linux脚本基础练习

    马哥教育网络班+ 第7周课堂练习 Linux脚本基础练习 练习: 1、创建一个10G分区,并格式为ext4文件系统; (1)要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl (2)挂载至/data/mydata目录 要求挂载时禁止程序自动运行,且不更新文件的访问时间戳 第一步,在虚拟机中挂载一块20G的新硬盘 &…

    Linux干货 2016-11-09
  • 删除三天前备份的脚本

    [root@scm-dzm testfolder]# ll total 4 drwxr-xr-x. 2 root root   6 Jul 14 00:53 20160722 drwxr-xr-x. 2 root roo…

    Linux干货 2016-07-16
  • 运维自动化之系统安装

    自动化安装系统,cobbler的安装使用

    Linux干货 2018-01-15