我上传了一个CSV文件,该文件将我所有的列自动转换为varchar。我需要将值22.30转换为0.223。
alter table badv2018
alter column [BB Percent] decimal(4, 3)
但是我得到了错误:
信息8115,第16级,状态8,第146行
将数字转换为数据类型数字的算术溢出错误。
答案 0 :(得分:4)
我需要将值22.30转换为0.223。
您需要将其设置为100.0,然后enum
就可以了
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]
答案 1 :(得分:2)
使其具有更大的价值。例如:
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);