MySQL视图:如何将计算字段的默认值设置为0?

时间:2009-12-11 00:29:05

标签: sql mysql calculated-columns

我使用以下语句在视图中创建百分比计算:

回合(({SurveysRejectedAsAdvertising / SurveysResponses)* 100),0)AS PercentageAdvertising

基本上,我根据回复的总数将回答的数量除以某个问题(在这种情况下,被认为是广告)。

最后,我的列中显示了五种可能的调查回复中的每一种的百分比(“它是广告吗?”,“它很无聊吗?”等。)

这很有效,但有一件事我想调整。当响应类型(例如,广告)没有任何投票时,我的计算字段会收到NULL值。

定义视图时,如何指定默认值0?

感谢。

2 个答案:

答案 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时,它将给你零。