ORA-00932:不一致的数据类型:期望的数字得到CHAR



CASE WHEN WEIGHT>0 THEN ROUND((WEIGHT/POWER((HEIGHT/100),2)),3)ELSE " END

ORA-00932:不一致的数据类型:期望的数字得到CHAR00932. 00000 -不一致的数据类型:预期%s已得到%s">

如何将权重列转换为数字

需要将weight column转换为char

尝试to_char还是相同的错误

THEN子句返回Number, ELSE返回"。这是自相矛盾的。CASE表达式返回的值必须具有相同的数据类型。如果您尝试不使用ELSE(下面),那么,如果条件不满足,您将得到Null作为结果,Null可以通过Nvl()或Coalesce()函数或任何其他方式管理(如果需要):

CASE WHEN WEIGHT > 0 THEN ROUND((WEIGHT/ POWER((HEIGHT/100),2)),3) END

如果您的WEIGHT列是字符转换它使用To_Number()函数

最新更新