【问题标题】:How to copy varchar column with currency value to decimal in SQL Server?如何在 SQL Server 中将具有货币值的 varchar 列复制到十进制?
【发布时间】:2013-06-13 18:47:58
【问题描述】:

我有一个包含大约 20K 行数据的表。一个 varchar 列包含格式为 $xxx,xxx,xxx.00 的货币信息。我想创建一个十进制类型的附加列并将 varchar 数据复制到其中,显然同时剥离 $ 和 ,'s。

我玩过 cast 和 convert,混合了 trim 和 replace 功能,但还没有成功地将它放到一个新的专栏中。

因为我们要对数据进行许多未来的计算,我们希望它转换一次,而不是每次计算都转换它。

任何建议将不胜感激!

提前谢谢你!

--肯特

【问题讨论】:

    标签: sql-server syntax decimal currency varchar


    【解决方案1】:

    尝试替换 $ 和 ',',然后转换。你应该很好

    CONVERT(NUMERIC(28,4),REPLACE(REPLACE(stringColumn,'$',''),',',''))
    

    SQL 小提琴here.

    【讨论】:

      【解决方案2】:
       Select Cast(Replace(Replace(ColName, '$', ''), ',', '') as Money)
      

      【讨论】:

        猜你喜欢
        • 2015-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-14
        • 2013-04-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多