我使用以下语句在视图中创建百分比计算:
回合(({Surveys
。RejectedAsAdvertising
/ Surveys
。Responses
)* 100),0)AS PercentageAdvertising
基本上,我根据回复的总数将回答的数量除以某个问题(在这种情况下,被认为是广告)。
最后,我的列中显示了五种可能的调查回复中的每一种的百分比(“它是广告吗?”,“它很无聊吗?”等。)
这很有效,但有一件事我想调整。当响应类型(例如,广告)没有任何投票时,我的计算字段会收到NULL值。
定义视图时,如何指定默认值0?
感谢。
答案 0 :(得分:2)
COALESCE是首选方法,因为当参数为null时,它是ANSI标准处理评估的方法。作为ANSI,Oracle,SQL Server,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)
答案 1 :(得分:1)
你需要一个coalesce
。它选择第一个非NULL参数,因此您需要以下内容:
coalesce(
round(
((Surveys.RejectedAsAdvertising / Surveys.Responses) * 100)
,0)
,0)
AS PercentageAdvertising
然后,当圆的结果为NULL时,它将给你零。