gpt4 book ai didi

sql-server-2008 - SQL Server 2008 : Error converting data type nvarchar to float

转载 作者:行者123 更新时间:2023-12-01 09:35:21 25 4
gpt4 key购买 nike

目前正在解决运行此 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'))

导致以下错误:

Msg 8114, Level 16, State 5, Line 1
Error converting data type nvarchar to float.

真正奇怪的是,如果我将 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。

最佳答案

查看 tblBenchmarkData 的架构定义会很有帮助,但您可以尝试在查询中使用 ISNUMERIC。比如:

SET DataValue = CASE WHEN ISNUMERIC(DataValue)=1 THEN CAST(DataValue AS float) * 1.335 
ELSE 0 END

关于sql-server-2008 - SQL Server 2008 : Error converting data type nvarchar to float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9136722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com