由于从nvarchar转换为float时出错,我无法使以下查询生效;我需要将theData字段转换为float以使其舍入,但数据最初是NVARCHAR(20),因为该列也包含字符数据。我已经尝试将每个数据实例转换为浮动,但它仍然没有工作,有人能告诉我我错过了什么吗?
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;
答案 0 :(得分:0)
无法回答这个问题,因为我们不知道你得到的错误但是...你应该把案子移到哪里......它会让它更具可读性。
UPDATE tblData
SET tblData.theNumericData = Convert(float, [theData])
WHERE IsNumeric([theData]) = 1 AND tblData.theFlag =1;