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

相关推荐

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

    1、创建一个10G分区,并格式为ext4文件系统;   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; [root@localhost ~]# fdisk /dev/sdb Welcome to fdisk (uti…

    Linux干货 2016-11-07
  • 四.Linux博客-2016年7月26日ls、通配符、touch、cp、mv、rm、mkdir

    格式说明: 操作 概念 命令 说明及举例 四.ls、通配符、touch、cp、mv、rm、mkdir du -sh /sys 查看文件、文件夹大小 /sys/class/scsi_host/host2/scan 在线扫盘(新加硬盘执行这个命令后才能发现) stat /etc/issue 更详细的看数…

    Linux干货 2016-08-23
  • Windows 10 VS. Linux

    原文出处: Linux中国 – zpl1025   前阵子 Windows 10 好像占据了绝大部分头条,甚至在一些Linux圈里也是一样。最具代表性的是 betanews.com 的 Brian Fagioli 说 Windows 10 已经为 Linux 桌面系统敲响了丧钟,Microsoft 如今宣布将为忠实的…

    系统运维 2015-03-24
  • 第一次作业

    第一次作业 作业1 博客 作业2 echo -e "\033[49;31;4;5m*******\033[0m \n\033[49;32;4;5m ***** \033[0m \n\033[49;33;4;5m  ***  \033[0m \n\033[49;34;4;5m   *   \033[0m&quo…

    Linux干货 2016-08-03
  • linux基本命令的使用

      1>    查看当前终端名:tty 或who am i       查看当前所有登录的终端信息:who       查看当前所有登录的终端的详细信息 w 2> 编辑器    …

    2017-07-15
  • LAMP平台基于NFS实现web服务器负载均衡

    前言 随着访问量的逐渐增大,一台web服务器可能已经无法满足需求,这就需要增加web服务器的数量了,于是问题就来了:如何保证两台服务器数据同步呢?本文将讲解如何基于NFS实现web服务器的负载均衡及数据同步。 NFS服务介绍 NFS(Network File System)网络文件系统,允许一个系统通过网络共享目录和文件,通过使用NFS,用户和程序可以像访问…

    Linux干货 2015-04-22