SQL Server键值对将varchar转换为数字而没有异常

时间:2012-10-31 10:22:36

标签: sql-server parsing text-parsing

我正在寻找将用户定义的函数组合在一起以将varchar转换为数字的技巧。诀窍是我在将字符串的常见文本表示转换为数字之后。此外,如果它不能被解析为数字,我希望它返回NULL而不是抛出错误并停止查询。

示例:

  • varchar '10%'应解析为数字0.1(不删除%符号并除以100)
  • varchar'$ 1,00.1234'应解析为数字100.1234(删除$ sign and,)
  • varchar'$ 1k'应解析为数字1000(k转换为乘以1千)
  • varchar'$ 1M'应解析为数字1000000(m转换为乘以1百万)
  • varchar'$ 1B'应解析为数字1000000000(b转换为乘以10亿)
  • varchar'100'应解析为数字1000(LTrim& RTrim)
  • varchar'Random Text'应该解析为数字NULL(Null不会抛出错误)

1 个答案:

答案 0 :(得分:2)

我建议您使用CLR函数来解析这种复杂性。然后修复数据

除了非数字值之外,您还有货币,百分比,混合小数/分隔符格式的混合。