Sql server 如何添加小数和;零';s在数字之后
我在转换值时遇到问题 我的源值是:Sql server 如何添加小数和;零';s在数字之后,sql-server,tsql,sql,Sql Server,Tsql,Sql,我在转换值时遇到问题 我的源值是: 一, 二, 三, 四, 1-abcd 2-xyzabcdefgh abcdefgh lmnop 我需要输出为 1.00 二点 三点 4.00 我的问题是,有些字段只包含字母,还有一些字段同时包含字母和数字 我只需要格式化这些数字: 1作为1.00 2作为2.00 包含字母的字段需要保持不变 有什么帮助吗?试试类似的方法 select case when MyVarcharColumn NOT LIKE '%[^0-9]%' then co
- 一,
- 二,
- 三,
- 四,
- 1-abcd
- 2-xyzabcdefgh
- abcdefgh
- lmnop
- 1.00
- 二点
- 三点
- 4.00
- 1作为1.00
- 2作为2.00
select case
when MyVarcharColumn NOT LIKE '%[^0-9]%' then convert(decimal(18,2), MyVarcharColumn)
else MyVarcharColumn
end as MyVarcharColumn
from x
可能不是最简单/最有效的解决方案,但它应该可以工作
我也同意乔的看法,你可以照李说的去做,或者把它放在一个试捕器里
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
试试这个
select
case when col1 NOT LIKE '%[^0-9]%'
then convert(varchar(50), convert(decimal(18,2), col1))
else col1 end as col1 from mysource
通常,在应用程序代码中处理格式化结果比在t-sql中更好。