数据项内的公式计算

piratebao 2008-09-08 01:49:58
求解数据项内的公式计算


唔,是这样的,一段公式被写到数据项里了,

1 2+3
2 98-32+47
怎样可以输出这公式的计算值呢?多谢各位。
能否直接在数据库中结局,而不是程序中。
...全文
80 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
piratebao 2008-09-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 myth8860 的回复:]
create table test_1(c1 int,c2 varchar(100));
insert into test_1 values(1,'1+1');

insert into test_1 values(2,'1*3');

insert into test_1 values(3,'1-(1*3)');

insert into test_1 values(4,'1-(1/0)');

CREATE PROCEDURE sp_CountExp
@ExpStr varchar(8000),
@ decimal(19,2) out
as
declare @sql nvarchar(4000)
set @sql = N'set @ = ' + @ExpStr
exec SP_EXECUTE…
[/Quote]
非常感谢。完整解决问题。哎。。。我还是太菜。看书去!
myth8860 2008-09-08
  • 打赏
  • 举报
回复
create table test_1(c1 int,c2 varchar(100));
insert into test_1 values(1,'1+1');

insert into test_1 values(2,'1*3');

insert into test_1 values(3,'1-(1*3)');

insert into test_1 values(4,'1-(1/0)');

CREATE PROCEDURE sp_CountExp
@ExpStr varchar(8000),
@ decimal(19,2) out
as
declare @sql nvarchar(4000)
set @sql = N'set @ = ' + @ExpStr
exec SP_EXECUTESQL @sql ,N'@ decimal(19,2) out', @ out
select @
GO



CREATE PROCEDURE titles_cursor1 as
declare demo_cursor cursor for select c2 from test_1;
declare @biaodashi varchar(100);
declare @x decimal(10,2)
open demo_cursor

fetch next from demo_cursor into @biaodashi
while @@fetch_status=0
begin
exec dbo.sp_CountExp @biaodashi, @x out
update test_1 set c2=@x where current of demo_cursor;
fetch next from demo_cursor into @biaodashi;
end
close demo_cursor
DEALLOCATE demo_cursor
go

exec titles_cursor1;
CN_SQL 2008-09-08
  • 打赏
  • 举报
回复
因为运算符有很多种,而且很多优先级规则,如果你去拆分字符去做这样一件
事,那也太...,如果真的就只是简单的几个运算符,那还好些
CN_SQL 2008-09-08
  • 打赏
  • 举报
回复
不然,自己得在数据库里写这样一个函数,个人感觉,
如果可以在程序中处理,没必要自己耗费时间去做这样一件事
而且,非常麻烦。
CN_SQL 2008-09-08
  • 打赏
  • 举报
回复
这个功能在程序中用表达式求值函数应该要好处理些。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧