我必须使用聚合函数查询列的总量。列数据类型是NVARCHAR(MAX)。如何将其转换为整数?
我试过这个:
SELECT SUM(CAST(amount AS INT)),
branch
FROM tblproducts
WHERE id = 4
GROUP BY branch
......但我得到了:
将nvarchar值'3600.00'转换为数据类型int时转换失败。
答案 0 :(得分:30)
3600.00不是整数所以CAST通过float first
sum(CAST(CAST(amount AS float) AS INT))
编辑:
为何浮动?
答案 1 :(得分:8)
除了gbn的答案,你需要防范非数字案例:
sum(CASE WHEN ISNUMERIC(Amount)=1 THEN CAST(CAST(amount AS float) AS INT)END )
答案 2 :(得分:0)
SELECT sum(Try_Parse(使用'en-US'作为Int的数量)),
科
来自tblproducts
WHERE id = 4
GROUP BY分支