SQL: select varchar 的平均值

SQL: select average of varchar

我想制作一份报告,显示不同任务的平均成绩。

我在计算平均值时遇到了问题。我需要弄清楚如何将成绩转换为浮点数,以便我可以取平均值。成绩有时具有非数字或空值,尽管大多数值看起来像“2.0”或“3.5”。我可以排除任何非数字的东西。

这是我目前拥有的:

Select
GradingScores.task As task,
Avg(Cast((SELECT GradingScores.score WHERE GradingScores.score LIKE '%[^0-9]%')As float)) As averages
From
GradingScores 

我正在使用 FlySpeed SQL 查询。

您可以尝试使用 IsNumeric

Select
GradingScores.task As task,
Avg(Cast(GradingScores.score as float) As averages
From
GradingScores where IsNumeric(GradingScores.score) = 1

只需简单地在 T-SQL

中使用 convert() 和 isnumeric() 函数
select avg(convert(float,score))
from GradingScores 
where isnumeric(score)=1

以下是对我有用的方法:

SELECT AVG(CAST(columnName AS FLOAT)) FROM tableName;