Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何添加小数和;零';s在数字之后_Sql Server_Tsql_Sql - Fatal编程技术网

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中更好。