目前正在解决运行此 SQL 查询的问题:
UPDATE tblBenchmarkData
SET OriginalValue = DataValue, OriginalUnitID = DataUnitID,
DataValue = CAST(DataValue AS float) * 1.335
WHERE
FieldDataSetID = '6956beeb-a1e7-47f2-96db-0044746ad6d5'
AND ZEGCodeID IN
(SELECT ZEGCodeID FROM tblZEGCode
WHERE(ZEGCode = 'C004') OR
(LEFT(ZEGParentCode, 4) = 'C004'))
导致以下错误:
消息 8114,级别 16,状态 5,第 1
行将数据类型 nvarchar 转换为浮点数时出错。
真正奇怪的是,如果我更改UPDATE
为SELECT
检查检索到的值是数值:
SELECT DataValue
FROM tblBenchmarkData
WHERE FieldDataSetID = '6956beeb-a1e7-47f2-96db-0044746ad6d5'
AND ZEGCodeID IN
(SELECT ZEGCodeID
FROM tblZEGCode WHERE(ZEGCode = 'C004') OR
(LEFT(ZEGParentCode, 4) = 'C004'))
结果如下:
DataValue
2285260
1205310
想使用TRY_PARSE
或类似的东西;但是,我们在 SQL Server 2008 而不是 SQL Server 2012 上运行。有人有什么建议吗?TIA。