国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySql存儲過程之邏輯判斷和條件控制

2020-01-18 22:44:38
字體:
來源:轉載
供稿:網友

具體詳情請看下文小編給大家帶來的知識點。

同編寫程序類似,存儲過程中也有對應的條件判斷,功能類似于if、switch。在MySql里面對應的是IF和CASE

1、IF判斷

IF判斷的格式是這樣的:

IF expression THEN commands   [ELSEIF expression THEN commands]   [ELSE commands]   END IF; 

這里expression是我們的判斷表達式;ELSE IF 和ELSE都是可選的;command就是當條件為真(true為1,false為0)時執行的命令。比如我們設計一個存儲過程用于返回商品的價格,這里價格通過傳入的參數來判斷是要帶稅收的價格還是沒有帶稅收的價格。先看看表的數據:

然后下面是我們的存儲過程:

存儲過程的話有兩個輸入參數,第一個isTaxed表示是不是要帶稅價格,第二個是產品的名稱;在存儲過程里面定義了兩個變量,finalPrice用來保存價格,而taxRate表示稅率。這里代碼比較簡單,就是判斷下如果是要加稅,就把原來的價格乘上稅率。下面是測試結果:

true的情況表示是帶稅的價格。好了這個是使用IF的一個例子,下面看看CASE;

2、CASE的使用

同編程里面的那個switch ....case.....類似,使用CASE同編程一樣也是當判斷比較多時便于閱讀和維護,我們也來看下CASE的語法:

CASE case_expression   WHEN when_expression THEN commands   WHEN when_expression THEN commands   ...   ELSE commands END CASE; 

  a、這里可以看到CASE好比我們編程里面的那個switch,后面的case_expression就好比switch后面跟著的表達式;

  b、然后WHEN則類似編程里面的case,when_expression類似case后面跟著的值,commands則對應于相應的case下執行的命令;

 c、最后一個 ELSE 則類似于default,就是如果都沒在上面那些WHEN里面的情況時執行的命令。


下面我們假設不同類型的商品對應的稅收稅率是不一樣的情況來看個例子,這里假設甜點的稅率是0.05,奶制品的是0.1,家具類的是0.2:,下面是存儲過程:

上面增加了一個保存產品類型的一個變量proType,用來保存商品類型。然后使用CASE來進行判斷來設置稅率,下面是測試的部分:

可以看到沙發的價格是1250*1.2=1500,而蛋糕的價格是10*1.05 = 10.5


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 闻喜县| 泽普县| 柏乡县| 光山县| 岳阳县| 瑞安市| 易门县| 景谷| 岫岩| 龙门县| 象州县| 嘉鱼县| 若尔盖县| 双柏县| 通渭县| 江达县| 盐边县| 上蔡县| 伊金霍洛旗| 昂仁县| 牙克石市| 女性| 北碚区| 土默特左旗| 罗江县| 万州区| 广水市| 湘潭县| 肥西县| 蓬莱市| 襄樊市| 清水河县| 东山县| 三门峡市| 乌海市| 咸阳市| 新丰县| 凤凰县| 湖北省| 石门县| 天门市|