Sql 从nvarchar到float的转换不起作用
由于从nvarchar转换为float时出错,我无法使以下查询正常工作;我需要将数据字段转换为float以对其进行舍入,但数据最初是一个NVARCHA20,因为该列也包含字符数据。我尝试将每个数据实例都转换为浮动,但仍然不起作用,有人能告诉我缺少什么吗Sql 从nvarchar到float的转换不起作用,sql,sql-server-2008,type-conversion,Sql,Sql Server 2008,Type Conversion,由于从nvarchar转换为float时出错,我无法使以下查询正常工作;我需要将数据字段转换为float以对其进行舍入,但数据最初是一个NVARCHA20,因为该列也包含字符数据。我尝试将每个数据实例都转换为浮动,但仍然不起作用,有人能告诉我缺少什么吗 UPDATE tblData SET tblData.theNumericData = CASE WHEN IsNumeric([theData]) = 1 THEN Round(Convert(float, [theData]),(Len([
UPDATE tblData SET tblData.theNumericData = CASE WHEN IsNumeric([theData]) = 1
THEN Round(Convert(float, [theData]),(Len([theData])-Charindex('.',[theData])))
ELSE Null END
WHERE tblData.theFlag =1;
我尝试了以下两种变体
UPDATE tblData SET tblData.theNumericData = CASE WHEN IsNumeric([theData]) = 1
THEN Round(Convert(float, [theData]),(Len(Convert(float, [theData]))-
Charindex('.',Convert(float, [theData]))))
ELSE Null END
WHERE tblData.theFlag =1;
而且
UPDATE tblData SET tblData.theNumericData = CASE WHEN IsNumeric([theData]) = 1
THEN Convert(nvarchar(20),Round(Convert(float, [theData]),(Len(Convert(float,
[theData]))- Charindex('.',Convert(float, [theData]))))) ELSE Null END
WHERE tblData.theFlag =1;
无法回答问题,因为我们不知道您遇到的错误,但是。。。你应该把箱子搬到。。。这会让它更具可读性
UPDATE tblData
SET tblData.theNumericData = Convert(float, [theData])
WHERE IsNumeric([theData]) = 1 AND tblData.theFlag =1;
你有什么错误吗?是的,我一直在犯典型的、一贯的错误。。将数据类型nvarchar转换为float时出错。我建议您运行查询,从tblData中选择数据,其中isnumericthedata=1 order by the data。问题行很可能位于列表的顶部或底部。convertfloat、columnname有效吗?一次尝试一个步骤。IsNumeric并不总是捕获有效数字,有时包含无效数字。