mysql中case用法
阿新 • • 發佈:2018-01-29
sql select 簡單 mman 但是 num 執行 res bytes
轉載請註明出處:
簡單CASE語句僅允許您將表達式的值與一組不同的值進行匹配。 為了執行更復雜的匹配,如範圍,您可以使用可搜索CASE語句。
可搜索CASE語句等同於IF語句,但是它的構造更加可讀。以下說明可搜索CASE語句的語法:
CASE
WHEN condition_1 THEN commands
WHEN condition_2 THEN commands
...
ELSE commands
END CASE;
MySQL評估求值WHEN子句中的每個條件,直到找到一個值為TRUE的條件,然後執行THEN子句中的相應命令(commands)。
如果沒有一個條件為TRUE,則執行ELSE子句中的命令(commands)。如果不指定ELSE子句,並且沒有一個條件為TRUE,MySQL將發出錯誤消息。
實例:
SELECT CASE u.playerType WHEN ‘1‘ THEN u.num ELSE 0 END AS ‘livePlayCount‘, CASE u.playerType WHEN ‘2‘ THEN u.num ELSE 0 END AS ‘vodPlayCount‘, CASE u.playerType WHEN ‘1‘ THEN u.flowNum ELSE 0 END AS ‘liveFlow‘, CASE u.playerType WHEN ‘2‘ THEN u.flowNum ELSE 0 END AS ‘vodFlow‘, 0 AS ‘storeSpace‘ , 0 AS ‘storeResidueSpace‘ FROM ( SELECT playerType, COUNT(*) AS num, ifnull(SUM(bytesSend),0) AS ‘flowNum‘ FROM tbl_player_statistics WHERE playerTime BETWEEN CONCAT(DATE_FORMAT(#{month},‘%Y-%m‘),‘-01 00:00:00‘) AND CONCAT(DATE_FORMAT(last_day(#{month}),‘%Y-%m-%d‘),‘ 23:59:59‘) GROUP BY playerType )
mysql中case用法