Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从nvarchar到float的转换不起作用_Sql_Sql Server 2008_Type Conversion - Fatal编程技术网

Sql 从nvarchar到float的转换不起作用

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([

由于从nvarchar转换为float时出错,我无法使以下查询正常工作;我需要将数据字段转换为float以对其进行舍入,但数据最初是一个NVARCHA20,因为该列也包含字符数据。我尝试将每个数据实例都转换为浮动,但仍然不起作用,有人能告诉我缺少什么吗

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并不总是捕获有效数字,有时包含无效数字。