現在、次の 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 を float に変換中にエラーが発生しました。
本当に奇妙なことは、取得された値が数値であることを調べるためUPDATE
に toを変更すると、次のようになります。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 2012 ではなく SQL Server 2008 で実行しています。ティア。