我使用下面的语句来创建视图中的一个比率计算:

轮(((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)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top