在 MySQL 查询的 IF 条件中使用逻辑 OR 来检查 NoneType 或 float

Posted

技术标签:

【中文标题】在 MySQL 查询的 IF 条件中使用逻辑 OR 来检查 NoneType 或 float【英文标题】:Using logical OR in IF condition of an MySQL query to check for NoneType or float 【发布时间】:2021-11-10 18:41:04 【问题描述】:

我正在尝试编写一个带有 IF 条件的 SQL 查询,如下所示 -

IF (field_name1=0.0,0,ROUND(field_name1, 2)) as new_name,

当查询运行并且new_name 的值被消费为metric in -

percentage_diffs = df_filtered[metric].pct_change().round(5) * 100

我收到以下错误 -

TypeError: unsupported operand type(s) for /: 'NoneType' and 'float'

如何检查field_name1 的值是0.0 还是NoneType

提前致谢。

【问题讨论】:

【参考方案1】:

做一个 OR clauue

CREATE tABLE tab1 (field_name1 DOUBLE)
INSERT INTO tab1 VALUES (NULL),(0.0)
SELECT 
IF ((field_name1 IS NULL OR field_name1=0.0),0,ROUND(field_name1, 2)) as new_name FROM tab1
|新名称 | | --------: | | 0 | | 0 |

db小提琴here

【讨论】:

以上是关于在 MySQL 查询的 IF 条件中使用逻辑 OR 来检查 NoneType 或 float的主要内容,如果未能解决你的问题,请参考以下文章

Python 操作Redis

python爬虫入门----- 阿里巴巴供应商爬虫

Python词典设置默认值小技巧

《python学习手册(第4版)》pdf

Django settings.py 的media路径设置

Python中的赋值,浅拷贝和深拷贝的区别