来自 Oracle 的背景让我无法相信 SQL Server 如何让我为这样一个微不足道的问题而烦恼。
我只想将列中的数字解析varchar
为数字列。问题是,数字不是美式格式,而是德式格式。这意味着,小数点和数字组分隔符是互换的。
例子:
1.767,13 equals one thousand and seven hundred ...
我浏览了每一篇 MSDN 文章。CAST
不接受任何附加参数。CONVERT
可以采用一种似乎只适用于日期/时间和货币转换的样式。此外,我发现TRY_PARSE
它需要一个文化参数,但在 2008 版本中似乎还没有。
我想出了一个杂乱无章的解决方案,但那不可能!
cast(replace(replace([TOTALVALUE],'.',''), ',','.') as numeric(20,2))
首先删除数字组分隔符,然后将小数点从逗号更改为点。它有效,但它是否强大等。
感谢您的评论和回答!