Sim*_*dri 17 sql t-sql sql-server
我必须使用聚合函数查询列的总量.列数据类型是NVARCHAR(MAX).如何将其转换为整数?
我试过这个:
SELECT SUM(CAST(amount AS INT)),
branch
FROM tblproducts
WHERE id = 4
GROUP BY branch
Run Code Online (Sandbox Code Playgroud)
......但我得到了:
将nvarchar值'3600.00'转换为数据类型int时转换失败.
gbn*_*gbn 30
3600.00不是整数所以CAST通过浮动优先
sum(CAST(CAST(amount AS float) AS INT))
Run Code Online (Sandbox Code Playgroud)
编辑:
为何漂浮?
除了gbn的答案,你还需要防范非数字案例:
sum(CASE WHEN ISNUMERIC(Amount)=1 THEN CAST(CAST(amount AS float) AS INT)END )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
90539 次 |
| 最近记录: |