日期:2014-05-18  浏览次数:20527 次

请教一个替换的语句,在线等......
我有一个表,表名为:info_table   ,其数据如下:
item           paravalue
11               23.4*56.7
22               11.1*88.0
33               10.0*88.2

我想要把paravalue的值进行替换,替换的要求是*之前的要乘以25.1,*好之后的乘以32.1,得到的结果如下:
item           paravalue
11               587.3*1820.1
22               278.6*2824.8
33               251.0*2831.2

谢谢

------解决方案--------------------
declare @t table(item int,paravalue varchar(40))
insert into @t select 11, '23.4*56.7 '
insert into @t select 22, '11.1*88.0 '
insert into @t select 33, '10.0*88.2 '


select item,
rtrim(left(paravalue,charindex( '* ',paravalue)-1)*25.1)+ '* '+
+rtrim(stuff(paravalue,1,charindex( '* ',paravalue), ' ')*32.1) as paravalue
from
@t

/*
item paravalue
----------- -----------------
11 587.34*1820.07
22 278.61*2824.80
33 251.00*2831.22
*/
------解决方案--------------------
Create Table info_table(item int,paravalue Nvarchar(30))
INSERT INTO info_table select 11, '23.4*56.7 '
UNION ALL SELECT 22, '11.1*88.0 '
UNION ALL SELECT 33, '10.0*88.2 '
GO
select * from info_table

select left(paravalue,patindex( '%*% ',paravalue)-1),right(paravalue,len(paravalue)-patindex( '%*% ',paravalue)) from info_table

GO
DROP TABLE info_table