本文目錄一覽:
為什麼mysql中的case總是為空?
ifnull()
你的第二個參數設置有誤.
你可以這樣試試:
MySQL ifnull()函數和nvl()函數類似,但是也有所不同,下面就為您詳細介紹MySQLifnull()函數 ,希望可以讓您對MySQL ifnull()函數有更深的認識.
IFNULL(expr1,expr2)
如果expr1不是NULL,IFNULL()返回expr1,否則它返回expr2.IFNULL()返回一個數字或字符串值,取決於它被使用的上下文環境.
mysql select IFNULL(1,0);
– 1
mysql select IFNULL(0,10);
– 0
mysql select IFNULL(1/0,10);
– 10
mysql select IFNULL(1/0,’yes’);
– ‘yes’
IF(expr1,expr2,expr3)
如果expr1是TRUE(expr10且expr1NULL),那麼IF()返回expr2,否則它返回expr3.IF()返回一個數字或字符串值,取決於它被使用的上下文.
mysql select IF(12,2,3);
– 3
mysql select IF(12,’yes’,’no’);
– ‘yes’
mysql select IF(strcmp(‘test’,’test1′),’yes’,’no’);
– ‘no’
expr1作為整數值被計算,它意味着如果你正在測試浮點或字符串值,你應該使用一個比較操作來做.
mysql select IF(0.1,1,0);
– 0
mysql select IF(0.10,1,0);
– 1
在上面的第一種情況中,IF(0.1)返回0,因為0.1被變換到整數值, 導致測試IF(0).這可能不是你期望的.在第二種情況中,比較測試原來的浮點值看它是否是非零,比較的結果被用作一個整數.
CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result …] [ELSE result] END
CASE WHEN [condition] THEN result [WHEN [condition] THEN result …] [ELSE result] END
第一個版本返回result,其中value=compare-value.第二個版本中如果第一個條件為真,返回result.如果沒有匹配的result值,那麼結果在ELSE後的result被返回.如果沒有ELSE部分,那麼NULL被返回.
mysql SELECT CASE 1 WHEN 1 THEN "one" WHEN 2 THEN "two" ELSE "more" END;
– "one"
mysql SELECT CASE WHEN 10 THEN "true" ELSE "false" END;
– "true"
mysql SELECT CASE BINARY "B" when "a" then 1 when "b" then 2 END;
– NULL
MySQL是一個關係型數據庫管理系統。MySQL 最流行的關係型數據庫管理系統,在 WEB 應用方面MySQL是最好的 RDBMS (Relational Database Management System,關係數據庫管理系統) 應用軟件之一。
MySQL是一種關聯數據庫管理系統,關聯數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。
MySQL所使用的 SQL 語言是用於訪問數據庫的最常用標準化語言。
MySQL 軟件採用了雙授權政策,它分為社區版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站數據庫。 由於其社區版的性能卓越,搭配PHP和Apache可組成良好的開發環境。
關於MYSQL數據庫中用SELECT CASE THEN ELSE END 這個方法的問題
SELECT
COUNT(IF(r.channel_type=1,1,0)) AS wangzhan,
COUNT(IF(r.channel_type=2,1,0)) baozhi,
COUNT(IF(r.channel_type=3,1,0)) zazhi,
SUM(CASE WHEN r.channel_type=1 AND r.check_status=6 THEN 1 ELSE 0 END) AS wangzhanluyong,
(CASE WHEN r.channel_type=1 THEN sum(r.fraction) ELSE 0 END) AS wangzhanfenshu,
sum(CASE WHEN r.channel_type=2 AND r.check_status=6 THEN 1 ELSE 0 END) AS baozhiluyong,
(CASE WHEN r.channel_type=2 THEN sum(r.fraction) ELSE 0 END) AS baozhifenshu,
sum(CASE WHEN r.channel_type=3 AND r.check_status=6 THEN 1 ELSE 0 END) AS zazhiluyong,(
CASE WHEN r.channel_type=3 THEN sum(r.fraction) ELSE 0 END) AS zazhifenshu
FROM
tougao_record r LEFT JOIN tougao t
ON r.tougao_id = t.id
WHERE
r.accept_company_id=100 AND t.create_at=’%2014-7-1%’
GROUP BY
r.channel_type
mysql中的case語句怎麼用
簡單 CASE 函數:
CASE input_expression
WHEN when_expression THEN result_expression
[ …n ]
[
ELSE else_result_expression
END
CASE 搜索函數:
CASE
WHEN Boolean_expression THEN result_expression
[ …n ]
[
ELSE else_result_expression
END
比如:
第一種用法:
SELECT name,
CASE WHEN birthday ‘1981’ THEN ‘old’
WHEN birthday ‘1988’ THEN ‘yong’
ELSE ‘ok’ END YORN
FROM lee
第二種用法:
SELECT NAME, CASE name
WHEN ‘sam’ THEN ‘yong’
WHEN ‘lee’ THEN ‘handsome’
ELSE ‘good’ END as oldname
FROM lee
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/244919.html