平均函数DB2 SQL运行时错误

平均函数DB2 SQL运行时错误,sql,db2,runtime-error,runtime,average,Sql,Db2,Runtime Error,Runtime,Average,我在DB2中运行这个sql语句 SELECT (CASE WHEN AVG(TVAPC) > 0 THEN 'Y' ELSE 'N' END) FROM TABLE1 到目前为止,它正在发挥作用。。TVAPC列是char(5)。 但在运行时我们得到了那个错误。sql错误+364错误。我们不能抓住那个熟悉的错误案例。有时我们得到有时我们不能为同样的情况 这似乎是运行时错误,但如何防止该错误 非常感谢你 为什么要取字符串的平均值?您应该修复数据格式 在任何情况下,都可以检查该值是否有数字

我在DB2中运行这个sql语句

SELECT (CASE WHEN AVG(TVAPC) > 0 THEN 'Y' ELSE 'N' END) 
FROM TABLE1 
到目前为止,它正在发挥作用。。TVAPC列是char(5)。 但在运行时我们得到了那个错误。sql错误+364错误。我们不能抓住那个熟悉的错误案例。有时我们得到有时我们不能为同样的情况

这似乎是运行时错误,但如何防止该错误


非常感谢你

为什么要取字符串的平均值?您应该修复数据格式

在任何情况下,都可以检查该值是否有数字。这里有一种方法(假设值是一个数字):


为什么要取字符串的平均值?您应该修复数据格式

在任何情况下,都可以检查该值是否有数字。这里有一种方法(假设值是一个数字):


我还并没有足够的声誉来评论你们的帖子,所以我要发布一个“答案”,冒着被皇室否决的风险,并因为这样做而诋毁我。检查列的数据类型。当我运行它时,只要columns数据类型是数值类型,它就可以正常工作。如果恰好是您的情况(列类型不是数字),则将其转换为Int

--In case it isn't a numeric type...
SELECT (CASE WHEN AVG(CAST(column as int))>0 THEN 'Y' ELSE 'N' END) 
FROM TEMP1234 

我还并没有足够的声誉来评论你们的帖子,所以我要发布一个“答案”,冒着被皇室否决的风险,并因为这样做而诋毁我。检查列的数据类型。当我运行它时,只要columns数据类型是数值类型,它就可以正常工作。如果恰好是您的情况(列类型不是数字),则将其转换为Int

--In case it isn't a numeric type...
SELECT (CASE WHEN AVG(CAST(column as int))>0 THEN 'Y' ELSE 'N' END) 
FROM TEMP1234 

最有可能是TVAPC列中的错误数据。该值必须可强制转换为数字类型,AVG才能在该上下文中发挥作用。您的Db2服务器版本是什么?Db2服务器运行在哪个操作系统上?最有可能是TVAPC列中的坏数据。该值必须可强制转换为数字类型,AVG才能在该上下文中发挥作用。您的Db2服务器版本是什么?Db2服务器运行在哪个操作系统上?
convert()
不是Db2函数(至少在Db2 LUW中不是)
convert()
不是Db2函数(至少在Db2 LUW中不是)