如何添加小数和;数字后为零

时间:2011-01-04 16:05:56

标签: sql-server tsql sql

我在转换值方面遇到了问题。

我的来源值是:

  • 1
  • 2
  • 3
  • 4
  • 1 - abcd
  • 2 - xyzabcdefgh
  • ABCDEFGH
  • lmnop

我需要输出

  • 1.00
  • 2.00
  • 3.00
  • 4.00

我遇到的问题是某些字段只包含字母,还有包含字母和数字的字段。

我只需要格式化这些数字:

  • 1为1.00
  • 2为2.00

包含字母的字段需要保持不变。

请帮忙吗?

3 个答案:

答案 0 :(得分:2)

尝试类似

的内容
select case 
    when MyVarcharColumn NOT LIKE '%[^0-9]%' then convert(decimal(18,2), MyVarcharColumn) 
    else MyVarcharColumn 
end as MyVarcharColumn
from x

可能不是最优雅/最有效的解决方案,但它应该可行

我也同意Joe

答案 1 :(得分:0)

你可以做李所说的,或者包含在试试中

Declare @str varchar(10)


Set @str = '1'
Begin Try
    Select Convert(Decimal(10,2), @str) -- scale 10, precision 2
End Try
Begin Catch
    Select 'Not Numeric'
End Catch

答案 2 :(得分:0)

试试这个

select 
  case when col1 NOT LIKE '%[^0-9]%'
     then convert(varchar(50), convert(decimal(18,2), col1)) 
     else col1 end as col1 from mysource