Select *,Replace(Formula,'value',20) as tt From APMS.dbo.Formulas
Value Formula
0.0000254*20 0.0000254*Value
0.0254*20 0.0254*Value
0.0000157*20 0.0000157*Value
(20-32)*5.0/9.0 (Value-32)*5.0/9.0
(9.0/5.0)*20+32 (9.0/5.0)*Value+32
希望能 Value 能得出具体的值? SQL怎么写啊
Value Formula
0.0000254*20 0.0000254*Value
0.0254*20 0.0254*Value
0.0000157*20 0.0000157*Value
(20-32)*5.0/9.0 (Value-32)*5.0/9.0
(9.0/5.0)*20+32 (9.0/5.0)*Value+32
希望能 Value 能得出具体的值? SQL怎么写啊
解决方案 »
- 求更新语句-在线等,谢谢
- SQLSERVER2005数据库中存储过程的问题
- 不用游标,没有自增列id,如何获取.,数据集中行N-行N之间的数据行?
- 日期判断问题
- 如何根据生日把人员数据按年限分类?
- 求救:作为源列 9(“备注”)的数据对于所指定的缓冲区来讲太大。
- 如何配置sql server 2005连接 sqlserver2000
- 当前的数据库引擎有哪些?
- 如何解决问题:"无法在 sysdepends 中添加当前存储过程所对应的行,因为缺少该存储过程所依赖的对象 '测试2'。仍将创建该存储过程。"
- 会者不难:将整型数转换成字符串的问题(急)
- Sqlserver2005在原数据库上改为 分区存储,怎么改?
- 如何只取一条记录
set @sql='20*20'
set @sql1='select value='+@sql
exec (@sql1)
if object_id('[tb]') is not null drop table [tb]
create table [tb] ([Value] varchar(15),Formula varchar(18))
insert into [tb]
select '0.0000254*20','0.0000254*Value' union all
select '0.0254*20','0.0254*Value' union all
select '0.0000157*20','0.0000157*Value' union all
select '(20-32)*5.0/9.0','(Value-32)*5.0/9.0' union all
select '(9.0/5.0)*20+32','(9.0/5.0)*Value+32'
godeclare @sql varchar(max)
select @sql=isnull(@sql+' union all ','')+'select [value]='''+[value]+''',[formula]='''+Formula+''',result='+replace(formula,'value',[value]) from [tb]
exec(@sql)--结果:
value formula result
--------------- ------------------ ---------------------------------------
0.0000254*20 0.0000254*Value 0.00000001290320
0.0254*20 0.0254*Value 0.01290320000000
0.0000157*20 0.0000157*Value 0.00000000492980
(20-32)*5.0/9.0 (Value-32)*5.0/9.0 -21.48148111110000
(9.0/5.0)*20+32 (9.0/5.0)*Value+32 128.80000000000000
谢谢你的方法,我已经在Sql2000上实现了你的方法。上面说你的答案不正确是说你的result结果可能与楼主希望的不符合。我只是不明白为什么非要把value字段选出来,才能实现这个功能呢?我会另外开一个帖子问你的。希望不吝指教。
select @str=replace(Formula,'Value','20') From APMS.dbo.Formulas where ID=217
print(@str)
declare @re decimal(18,2)
declare @err int,@src varchar(255),@desc varchar(255)
declare @obj int
exec @err=sp_oacreate 'MSScriptControl.ScriptControl',@obj out
if @err<>0 goto lb_err
exec @err=sp_oasetproperty @obj,'Language','vbscript'
if @err<>0 goto lb_err
exec @err=sp_oamethod @obj,'Eval',@re out,@str
if @err=0 print(@re)
lb_err:
exec sp_oageterrorinfo NULL, @src out, @desc out
declare @errb varbinary(4),@s varchar(20)
set @errb=cast(@err as varbinary(4))
exec master..xp_varbintohexstr @errb,@s out
--return('ErrorID: '+@s+char(13)+'ErrorSource: '+@src+char(13)+'ErrorDis '+@desc)
print('ErrorID: '+@s+char(13)+'ErrorSource: '+@src+char(13)+'ErrorDis '+@desc)1*20
ErrorID: 0x800401F3
ErrorSource: ODSOLE Extended Procedure
ErrorDis Invalid class string
insert into [tb112]
select '0.0000254*20','0.0000254*Value' union all
select '0.0254*20','0.0254*Value' union all
select '0.0000157*20','0.0000157*Value' union all
select '(20-32)*5.0/9.0','(Value-32)*5.0/9.0' union all
select '(9.0/5.0)*20+32','(9.0/5.0)*Value+32'select * from [tb112]declare @ss varchar(max)
declare @ss1 varchar(max)
declare @i int
set @ss1=''
--set @ss='select @ss1=@ss1+value from [tb112]'
select @ss1=@ss1+' select '+value+' union all ' from [tb112]
set @i=len(rtrim(@ss1))
set @ss1=substring(@ss1,1,@i-9)
exec (@ss1)