挣扎以下sql语句。
数据库是MySQL,得分为DECIMAL(5,1)
我希望按照列中的平均分数排序
...AVG(COALESCE(score,0)) AS scoreAvg ... ORDER BY scoreAvg DESC
但结果并不像预期的那样,我的产品得分高于没有得分的产品(得分为0)。
看起来像得分被视为一个字符串,我试过。
CAST(SCORE AS DECIMAL(5,1))
但没有运气。
感谢您的帮助,
此致
答案 0 :(得分:0)
您的值可能在varchar(max)中 因此,您希望将varchar转换为十进制或数字并添加
Order by avg(COALESCE(column name,0))
或
Order by avg(coalesce(cast(column name as decimal (5,1)),0.0)
答案 1 :(得分:-1)
剥离我的sql字符串后,结果我的" image_path" TEXT格式的列导致了该问题。将其更改为varchar(255)。
我没有发布它,因为我认为它不相关。
无论如何现在修好了。 必须是MySQL中的错误