1.0(3),2.0(4),3.5(5),3.5111(78),55.98(23345)
12.0(2),3.5(5)
4567.0(344),234.43(2323),3.5(5),3.5111(78),55.98(23345)



1307155.46580
41.50000
3422773.35580



create function toolkindvalues(@str varchar(8000) )
returns decimal(18,5)
as 
begin
declare @result decimal(18,5)
set @result=0
declare @charindex int 
set  @charindex=0
declare @replacestr varchar(500) 

while  (charindex(',',@str,0)>0)
begin
 
select  @charindex=charindex(',',@str,0)
select @replacestr=substring (@str,0,@charindex)

select  @str= replace( @str,@replacestr+',','')

 --select   @replacestr
 --select   left(@replacestr, charindex( '(',@replacestr,0)-1),left( right(@replacestr,2),len(right(@replacestr,2))-1)
select  @result=@result+ cast( left(@replacestr, charindex( '(',@replacestr,0)-1)  as decimal(18,5))  *  cast ( substring( replace( @replacestr,left(@replacestr, charindex( '(',@replacestr,0)-1),''),2,len(replace( @replacestr,left(@replacestr, charindex( '(',@replacestr,0)-1),''))-2)   as decimal(18,5) )
end 

 --select   @str

select   @result=@result+ cast(  left(@str, charindex( '(',@str,0)-1) as decimal(18,5))  *   cast ( substring( replace( @str,left(@str, charindex( '(',@str,0)-1),''),2,len(replace( @str,left(@str, charindex( '(',@str,0)-1),''))-2)  as decimal(18,5) )


return @result

end 




--drop  table #ddd

create table #ddd(str varchar(500))



insert #ddd

select '1.0(3),2.0(4),3.5(5),3.5111(78),55.98(23345)'   
union 
select '4567.0(344),234.43(2323),3.5(5),3.5111(78),55.98(23345)'   
union 
select '12.0(2),3.5(5)'   


select  *  from  #ddd

select dbo.toolkindvalues(str)   from #ddd

相关文章:

  • 2021-11-27
  • 2021-05-26
  • 2021-08-10
  • 2021-06-15
  • 2022-12-23
  • 2022-12-23
  • 2021-07-11
  • 2021-09-06
猜你喜欢
  • 2022-02-24
  • 2022-12-23
  • 2021-12-29
  • 2022-01-25
  • 2022-02-15
  • 2022-12-23
  • 2021-06-26
相关资源
相似解决方案