Yoh*_*urg 3 sql-server t-sql sql-server-2008-r2
我正在尝试在 SQL Server 2008 R2 中进行计算,但我不断收到错误
消息 245,级别 16,状态 1,第 10
行将 varchar 值“.05”转换为数据类型 int 时转换失败。
更改表结构不是一种选择,有没有办法可以更改查询以便成功执行?
DECLARE @Test1 TABLE
(
field1 VARCHAR(10),
field2 INT
);
INSERT INTO @Test1 ( field1, field2 )
VALUES ( '.05', 12 );
SELECT field1 / field2
FROM @Test1;
Run Code Online (Sandbox Code Playgroud)
这是你想要发生的吗?
DECLARE @Test1 TABLE
(
field1 VARCHAR(10),
field2 INT
);
INSERT INTO @Test1 ( field1, field2 )
VALUES ( '.05', 12 );
SELECT field1 / CONVERT(DECIMAL(18, 2), field2)
FROM @Test1;
Run Code Online (Sandbox Code Playgroud)
由于这被标记为答案:由于数据类型优先级,我将整数值转换为小数。字符串 '.05' 不能转换为整数,但它是一个完美的小数。