将varchar转换为十进制棒球平均值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将varchar转换为十进制棒球平均值相关的知识,希望对你有一定的参考价值。
我上传了一个CSV,它自动将我的所有列转换为varchar。我需要将值22.30转换为0.223。
alter table badv2018
alter column [BB Percent] decimal(4, 3)
但我得到错误:
Msg 8115,Level 16,State 8,Line 146 算术溢出错误将数字转换为数据类型数字。
答案
我需要将值22.30转换为0.223。
你需要将它除以100.0,然后DECIMAL(4, 3)
就可以了
DECLARE @Value DECIMAL(4, 3) = 22.3 / 100.0;
SELECT @Value
返回:
0.223
所以,你需要首先UPDATE
你的表,然后ALTER
[BB Percent]
列。
简单的方法是:
- 添加新列
DECIMAL(4, 3)
。 - 将数据移入其中。
- 放下旧栏目。
- 重命名新的。
--First step
ALTER TABLE badv2018
ADD New DECIMAL(4, 3);
--Second step
UPDATE badv2018
SET New = [BB Percent] / 100.0;
--Third step
ALTER TABLE badv2018
DROP COLUMN [BB Percent];
--The last step
EXEC sp_rename 'badv2018.New', 'BB Percent', 'COLUMN';
请享用!
更新:
您还可以添加计算列并保留[BB Percent]
列,这样可以确保您可以获得实际数据和计算数据。
ALTER TABLE badv2018
ADD New AS CAST([BB Percent] / 100.0 AS DECIMAL(4, 3));
另一答案
使其更广泛的价值。例如:
alter table badv2018
alter column [BB Percent] decimal(10, 3)
(4, 3)
只能表示0.000到9.999之间的值。你可能真的想要(6, 3)
,所以10太过分了。
然后,您可以添加具有所需结果的另一列:
alter table badv2018
add column bb_ratio as ([BB Percent] / 100);
以上是关于将varchar转换为十进制棒球平均值的主要内容,如果未能解决你的问题,请参考以下文章
将 VARCHAR 转换为 Datetime 并将 VARCHAR 转换为 Decimal 时创建外部表错误
SQL Server 2005:将 varchar 值“1.23E-4”转换为十进制失败