MySQL中类似ORACLE中decode()判断语句实现
生活随笔
收集整理的這篇文章主要介紹了
MySQL中类似ORACLE中decode()判断语句实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一. IF函數
1. IF語句
IF expression THEN statements; END IF;2. IF ELSE語句
IF expression THENstatements; ELSEelse-statements; END IF;或IF(expr1,expr2,expr3) -- expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),則 IF()的返回值為expr2; 否則返回值則為 expr33. IF ELSEIF ELSE語句
IF expression THENstatements; ELSEIF elseif-expression THENelseif-statements; ... ELSEelse-statements; END IF;二. CASE語句
1. 簡單CASE語句
CASE case_expressionWHEN when_expression_1 THEN commandsWHEN when_expression_2 THEN commands...ELSE commands END CASE;- 簡單CASE語句來檢查表達式的值與一組唯一值的匹配
- case_expression可以是任何有效的表達式。我們將case_expression的值與每個WHEN子句中的when_expression進行比較,如果case_expression和when_expression_n的值相等,則執行相應的WHEN分支中的命令(commands)
- 如果WHEN子句中的when_expression與case_expression的值匹配,則ELSE子句中的命令將被執行。ELSE子句是可選的。 如果省略ELSE子句,并且找不到匹配項,MySQL將引發錯誤
舉例:
CASE customerCountryWHEN 'USA' THENSET p_shiping = '2-day Shipping';WHEN 'Canada' THENSET p_shiping = '3-day Shipping';ELSESET p_shiping = '5-day Shipping';END CASE;2. 可搜索CASE語句
CASEWHEN condition_1 THEN commandsWHEN condition_2 THEN commands...ELSE commands END CASE;- MySQL評估求值WHEN子句中的每個條件,直到找到一個值為TRUE的條件,然后執行THEN子句中的相應命令(commands)
- 如果沒有一個條件為TRUE,則執行ELSE子句中的命令(commands)。如果不指定ELSE子句,并且沒有一個條件為TRUE,MySQL將發出錯誤消息
- MySQL不允許在THEN或ELSE子句中使用空的命令。 如果您不想處理ELSE子句中的邏輯,同時又要防止MySQL引發錯誤,則可以在ELSE子句中放置一個空的BEGIN END塊
舉例:
CASE WHEN creditlim > 50000 THEN SET p_customerLevel = 'PLATINUM';WHEN (creditlim <= 50000 AND creditlim >= 10000) THENSET p_customerLevel = 'GOLD';WHEN creditlim < 10000 THENSET p_customerLevel = 'SILVER';END CASE;轉載注明出處:www.meidanlong.com 😃
總結
以上是生活随笔為你收集整理的MySQL中类似ORACLE中decode()判断语句实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 亲人去世怎么安慰 哀悼亲人去世的句子19
- 下一篇: Navicat连接MySQL8.0出现2