SQL新手问题: varchar可以转换为float,但是转换为decimal时就会报错。程序如下:

新手上路,请多包涵
SELECT [列 0],AVG(cast([列 7] as numeric(8,2))) 
FROM [华夏].[dbo].[华夏原始数据] 
GROUP BY [列 0] 
having avg(cast([列 7] as decimal(8,2)))>60;

报错:从数据类型 varchar 转换为 numeric 时出错。

注:原始表格中的列7中没有字母,全是字符串型的数字。

错在哪里了?

阅读 16.5k
1 个回答

numeric换成decimal,另外这样写会简洁一些:

SELECT [列 0],AVG(cast([列 7] as decimal(8,2))) AS average
FROM [华夏].[dbo].[华夏原始数据] 
GROUP BY [列 0] 
having average > 60;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进