sql - MySQL查看: How do I set default value of a calculated field to 0?

标签 sql mysql calculated-columns

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

round(((调查.RejectedAsAdvertising/调查.回复) * 100),0) AS 百分比广告

基本上,我将对某个问题(在本例中,该问题被视为广告)的回复数除以回复总数。

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

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

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

谢谢。

最佳答案

COALESCE是首选方法,因为它是处理参数为空时求值的 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)

关于sql - MySQL查看: How do I set default value of a calculated field to 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1885070/

相关文章:

mysql - 如何从数据库列中分解用户 ID?

mysql - 计算两次之间的分钟数并将其除以记录数

sql-server - SQL Server 使用 WHILE 循环添加计算列

sql - 如何在连接查询中使用 count 和 where 子句

php - 我想按类别显示贷方或借方金额 我只收到贷方金额

mysql - 将表中的值插入另一个表

mysql - MySql 中的查询时间是线性的吗?

c++ - 连接器/C++ 编译错误

python - MySQL语句python转义单引号'

mysql - 如何将 SQL 查询结果存储在表列中