MySQL视图:如何设置一个计算字段的默认值设置为0?
-
19-09-2019 - |
题
我使用下面的语句来创建视图中的一个比率计算:
轮(((Surveys
.RejectedAsAdvertising
/ Surveys
.Responses
)* 100),0)AS PercentageAdvertising
基本上,我划分到一定的问题的响应的数目(在这种情况下,一些被认为是广告)通过的响应的总数。
在最后,我有一个显示百分比对五种可能的调查回复栏(“是不是广告?”,“是不是无聊?”,等等)。
这完美的作品,但有一两件事,我想调整。当响应类型(例如,广告)不具有任何票,我的计算的字段接收一个NULL值。
当定义我认为,如何指定的默认值0?
感谢。
解决方案
您需要有一个coalesce
。它选择的第一个非空参数,所以你需要这样的:
coalesce(
round(
((Surveys.RejectedAsAdvertising / Surveys.Responses) * 100)
,0)
,0)
AS PercentageAdvertising
然后,当该轮的结果是NULL,它会给你零代替。
其他提示
COALESCE 是首选的方法,因为它是处理评估时的参数为null,ANSI标准的方式。作为ANSI,相同的语法被支撑在Oracle,SQL服务器,Postgres的,等等,如果需要的话使所述查询更容易端口数据库之间。
COALESCE(round(((Surveys.RejectedAsAdvertising / Surveys.Responses) * 100),0) AS PercentageAdvertising, 0)
IFNULL 是所述MySQL的特定语法:
IFNULL(round(((Surveys.RejectedAsAdvertising / Surveys.Responses) * 100),0) AS PercentageAdvertising, 0)
不隶属于 StackOverflow