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.www58058.com/74581

(0)
dance_mandance_man
上一篇 2017-05-01 22:52
下一篇 2017-05-02 08:48

相關推薦

  • Linux的哲學思想及Linux發行版

    講述一下幾個問題: 第一,Linux的哲學思想;第二,Linux發行版的基礎目錄名稱,命名法則和功用規定;第三,Linux不同發行版之間的聯系和區別。 Linux的哲學思想: 1、一切皆文件。是Unix/Linux的基本哲學之一,不僅普通的文件,目錄,字符設備,塊設備,套接字等在Unix/Linux中都是以文件被對待。 2、小型,單一用途的程序。程序和可執行…

    Linux干貨 2016-09-17
  • shell腳本編程__bash的配置

    shell腳本編程__bash的配置   一、bash的配置文件:   按生效范圍劃分,存在兩類:     全局配置: /etc/profile /etc/profile.d/*.sh /etc/bashrc    個人配置: ~/.bash_profile ~/.bashrc 二、she…

    Linux干貨 2016-08-26
  • RAID各級別特性介紹

        RAID全稱為獨立磁盤冗余陣列(Redundant Array of Independent Disks):基本思想就是把多個相對便宜的硬盤組合起來,成為一個硬盤陣列組,使性能達到甚至超過一個價格昂貴、 容量巨大的硬盤。     RAID通常被用在服務器電腦上,使用完全相…

    Linux干貨 2016-06-22
  • 三劍客之Sed

    sed:stream editor(流編輯器) 工作特性:并不直接處理文本文件本身,處理機制為每當處理一個文件的時候,它會逐行讀取,每次把一行讀取到內存空間中去,而后在模式空間(pattern space)中完成編輯.并把編輯好的結果輸出到屏幕上  功      能:數據替換、刪除、增加、等,數據為關鍵字或者一整行, …

    Linux干貨 2016-08-08
  • 第二周 N28

    作業二

    2017-12-10
  • DNS高級應用之子域授權&區域轉發

    一、環境準備:    1、準備三臺測試服務器,劃分如下:    主DNS服務器:eth0:192.168.10.203;負責mylinux.com域解析;確??梢哉=馕?nbsp;     子域DNS服務器:eth0:192.168.10.120; 負責子域ops.mylinux.com解析; &…

    Linux干貨 2015-06-01
欧美性久久久久