【问题标题】:Using logical OR in IF condition of an MySQL query to check for NoneType or float在 MySQL 查询的 IF 条件中使用逻辑 OR 来检查 NoneType 或 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

提前致谢。

【问题讨论】:

    标签: mysql sql mysql-python


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-29
      • 2019-08-15
      相关资源
      最近更新 更多