我有一个包含大约 20K 行数据的表。一个 varchar 列包含格式为 $xxx,xxx,xxx.00 的货币信息。我想创建一个十进制类型的附加列并将 varchar 数据复制到其中,显然同时剥离 $ 和 ,'s。
我玩过 cast 和 convert ,混合了 trim 和 replace 功能,但还没有成功地将它放到一个新的专栏中。
因为我们要对数据进行许多未来的计算,所以我们希望它转换一次,而不是每次计算都转换它。
任何建议将不胜感激!
先感谢您!
--肯特
我有一个包含大约 20K 行数据的表。一个 varchar 列包含格式为 $xxx,xxx,xxx.00 的货币信息。我想创建一个十进制类型的附加列并将 varchar 数据复制到其中,显然同时剥离 $ 和 ,'s。
我玩过 cast 和 convert ,混合了 trim 和 replace 功能,但还没有成功地将它放到一个新的专栏中。
因为我们要对数据进行许多未来的计算,所以我们希望它转换一次,而不是每次计算都转换它。
任何建议将不胜感激!
先感谢您!
--肯特
尝试替换 $ 和“,”,然后转换。你应该很好
CONVERT(NUMERIC(28,4),REPLACE(REPLACE(stringColumn,'$',''),',',''))
SQL Fiddle在这里。
Select Cast(Replace(Replace(ColName, '$', ''), ',', '') as Money)