如果重量〉0,则舍入((重量/功率((高度/100),2)),3),否则''结束ORA-00932:不一致的数据类型:预期的数字得到CHAR 00932.00000-“不一致的数据类型:预期的%s得到了%s”如何将权重列转换为数字需要将重量列转换为字符tried to_char仍然相同的错误
zysjyyx41#
THEN子句返回Number,ELSE返回''。这是冲突。CASE表达式返回的值必须具有相同的数据类型。如果您尝试不使用ELSE(如下),则如果条件不满足,则结果将为Null,并且可以通过Nvl()或Coalesce()函数或任何其他方式管理null(如果需要):
CASE WHEN WEIGHT > 0 THEN ROUND((WEIGHT/ POWER((HEIGHT/100),2)),3) END
如果WEIGHT列是字符型的,则使用To_Number() function.进行转换
1条答案
按热度按时间zysjyyx41#
THEN子句返回Number,ELSE返回''。这是冲突。CASE表达式返回的值必须具有相同的数据类型。如果您尝试不使用ELSE(如下),则如果条件不满足,则结果将为Null,并且可以通过Nvl()或Coalesce()函数或任何其他方式管理null(如果需要):
如果WEIGHT列是字符型的,则使用To_Number() function.进行转换