将 nvarchar 转换为 int 的 SQL 查询 [英] Sql query to convert nvarchar to int

查看:41
本文介绍了将 nvarchar 转换为 int 的 SQL 查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我必须使用聚合函数查询列的总量.列数据类型为 NVARCHAR(MAX).如何将其转换为整数?

I have to query for total amount of a column using an aggregate function. The column data type is NVARCHAR(MAX). How can I convert it to Integer?

我已经试过了:

  SELECT SUM(CAST(amount AS INT)),
         branch 
    FROM tblproducts  
   WHERE id = 4
GROUP BY branch

...但我得到:

将 nvarchar 值3600.00"转换为数据类型 int 时转换失败.

Conversion failed when converting the nvarchar value '3600.00' to data type int.

推荐答案

3600.00 不是整数,所以先通过浮点数进行 CAST

3600.00 is not integer so CAST via float first

sum(CAST(CAST(amount AS float) AS INT))

为什么要漂浮?

  • 不知道所有行的精度或规模:浮动可能是较小的邪恶
  • 对于浮点数,空字符串将转换为零,在十进制时失败
  • float 接受 5E-02 之类的东西,但在十进制上失败

这篇关于将 nvarchar 转换为 int 的 SQL 查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆