我有以下表格测试
id Name idREF FORMULE
1 A gR gR1+gR2+gR3
2 B gR1 123
3 C gR2 124
4 e gR3 125
11 A1 gR11 gR21-gR31
12 B1 gR21 1231
13 C1 gR31 1241
如何修改表格测试:将formule(+或 - )替换为其值。
所以我会得到
id Name idREF FORMULE FORMULERESULT
1 A gR gR1+gR2+gR3 123+124+125
2 B gR1 123 123
3 C gR2 124 124
4 e gR3 125 125
11 A1 gR11 gR21-gR31 1231-1241
12 B1 gR21 1231 1231
13 C1 gR31 1241 1241
答案 0 :(得分:-1)
CREATE function dbo.converttoMap
(@value varchar(100))
RETURNS varchar(100)
WITH EXECUTE AS CALLER
AS
BEGIN
Declare @result varchar(100)
select @value = REPLACE(@value, idREF, formule)
from fortable where @value like '%'+idREF+'%' and formule not LIKE '%[^0-9]%'
set @result=@value
return(@result)
END
运行此功能,然后在更新查询中使用此功能
update ForTable set FORMULE=dbo.converttoplus(FORMULE) where formule LIKE '%[^0-9]%'
使用您的表名而不是ForTable