本文目录一览:
为什么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