Sql server SQL中的Nvarchar求和

Sql server SQL中的Nvarchar求和,sql-server,Sql Server,我是SQL领域的新手 无论如何-我正在尝试对当前存储为Nvarchar的列求和。我做了一些研究,结果发现我的问题是这样的: SELECT SUM(CAST(Nvarchar_Col AS INTEGER) FROM Datatable 我不知道为什么,但我一直得到错误: 关键字“FROM”附近的语法不正确 任何帮助都将不胜感激 您不能从VARCHAR转换为INT,您需要执行以下操作: SELECT SUM(ISNULL(CAST(Nvarchar_Col AS DECIMAL(6,2)),0)

我是SQL领域的新手

无论如何-我正在尝试对当前存储为Nvarchar的列求和。我做了一些研究,结果发现我的问题是这样的:

SELECT SUM(CAST(Nvarchar_Col AS INTEGER)
FROM Datatable
我不知道为什么,但我一直得到错误: 关键字“FROM”附近的语法不正确


任何帮助都将不胜感激

您不能
VARCHAR
转换为INT,您需要执行以下操作:

SELECT SUM(ISNULL(CAST(Nvarchar_Col AS DECIMAL(6,2)),0)) as Total
这将修复您遇到的两个错误


注意:我使用6精度2(###########)作为小数点,但您可以将其更改为您需要的任何值。

将整数存储在整数列中会更好,因为缺少右括号。。。投票以键入方式结束…
SUM(CAST(Nvarchar\u Col as INTEGER))
同样,就像“抬头”一样,如果您的表变大(500000多行),则此查询将被拖动。您必须转换表中的每个条目,这是一个相当大的操作。你把数字存储为文本有什么特别的原因吗?嘿,对不起,我确实关闭了第二个Parethes。但它仍然给了我一个类似这样的错误。SUM(CAST(Nvarchar_Col AS INTEGER))但它告诉我“将Nvarchar值“4.0”转换为数据类型int时转换失败。警告:通过聚合或其他集合操作消除空值。”感谢@scsimon,这很有帮助。我收到了另一个错误“将数据类型nvarchar转换为数值时出错”。但是我通过添加ISNUMBERIC(nvarchar\u Col)=1来修复它。我感谢您的帮助!