mysql 如果查询的值为空,让某个数据赋值为0 10

SELECTb.ED_value-a.ED_valueAScFROM(SELECT*FROMt_dataWHEREED_time<='2013-10-01'ANDid=1... SELECT
b.ED_value-a.ED_value
AS c
FROM
(SELECT * FROM t_data WHERE ED_time <= '2013-10-01' AND
id = 1 ORDER BY ED_time DESC LIMIT 1
) a,
(SELECT * FROM t_data WHERE ED_time <= '2013-10-04' AND
id = 1 ORDER BY ED_time DESC LIMIT 1
) b
WHERE a.id = b.id

首先b.ed_value是大于a.ed_value的值的,假如a.ed_value的值为null时,如何让a.ed_value=0,从而结果变为查询b.ed_value,我写了一个case when;
即把第二行替换为

CASE
WHEN b.ED_value IS NULL THEN a.ED_value
ELSE a.ED_value-b.ED_value
END
但是当b.ed_value有值,而a.ed_value没有值时返回结果仍为null而不是预想中的b.ed_value;
展开
 我来答
匿名用户
2013-10-09
展开全部
用nvL(null,0)可以不
追问
这个是oracle的函数,这里用的是mysql
追答
那还是用case when 吧,安全点
case when 字段 is not null
then 字段
else 0
end 0;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fwfwt
2013-10-10 · TA获得超过104个赞
知道小有建树答主
回答量:170
采纳率:0%
帮助的人:80万
展开全部
结合PHP分步操作就很简单了,if(x="") mysql_query("update $table set x=NULL");
嘿嘿~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式