SQL中能否达到EXCEL公式的功能?

littleredhorse2 2013-12-12 08:32:59
SQL中能否达到EXCEL公式的功能?

在EXCEL中,大家可能都会使用计算功能,如在某个单元格中录入
=1+1 回车,系统会自动计算出结果,如果录入=(2+5)*3,回车,也会自动计算出结果

问题:我想在SQL中,有列A,录入任意计算公式,如
1+1
1+5-2*3
(7.45-3.1)*(5-2)
等,也就是说,我的每次计算内容可能都不同,并且在A列保存这个计算公式,
然后,运行一个SQL语句,在B列,同一行把结果计算出来放到B列中,请问各位高手,如何才能达到这个要
求。
...全文
637 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdhp 2013-12-18
  • 打赏
  • 举报
回复
if object_id('tempdb..#tb') is not null drop table #tb
create table #tb(expression nvarchar(max))

insert into #tb
select '1+1' union all
select '1+5-2*3' union all
select '(7.45-3.1)*(5-2)' union all
select 'power(2,6)' union all
select '2+3' union all
select 'ceiling(1234.8)'

declare @sql nvarchar(max)

select @Sql= 
	isnull(@sql+' union all ','')+N'select N'''+
			expression+''' as [Expression],' +
			expression + N' as [Result] ' from #tb
exec(@sql)
这方法也不太好
lzw_0736 2013-12-13
  • 打赏
  • 举报
回复
计算公式建议在前台处理
littleredhorse2 2013-12-13
  • 打赏
  • 举报
回复
引用 5 楼 cxmcxm 的回复:
excel是一个电子表格的应用程序,sql server是数据库服务器,主要功能是数据存储与操作,查询。本身无电子表格那样的功能,那样的功能只能通过其它编程语言实现。 excel可通过odbc打开sql server数据库表进行数据操作,使用office编程,可实现sql server保存excel的数据。
感觉是这么一个意思,但是部门有人提出需求,我不能确定,所以先上来问问,谢谢了。 excel可通过odbc打开sql server数据库表进行数据操作,高手能否告诉一个参考案例呢。
littleredhorse2 2013-12-13
  • 打赏
  • 举报
回复
引用 1 楼 u012173239 的回复:
可以的啊,你直接在数据库中运行一下这句话试试
select(7.45-3.1)*(5-2)
你只是使用SELECT ,只是满足了一条记录的计算结果而已,而我的数据表是N条公式,并且都不同的。
cxmcxm 2013-12-12
  • 打赏
  • 举报
回复
excel是一个电子表格的应用程序,sql server是数据库服务器,主要功能是数据存储与操作,查询。本身无电子表格那样的功能,那样的功能只能通过其它编程语言实现。 excel可通过odbc打开sql server数据库表进行数据操作,使用office编程,可实现sql server保存excel的数据。
shoppo0505 2013-12-12
  • 打赏
  • 举报
回复
可以做。 但是我能想到的就是用游标,然后在2个表中倒数据。
LongRui888 2013-12-12
  • 打赏
  • 举报
回复
因为你录入的公式,只是一个字符串,sql不能解析你这个字符串的
LongRui888 2013-12-12
  • 打赏
  • 举报
回复
呵呵,这个sql 没有那么强,不能实现。
Landa_Jimmy 2013-12-12
  • 打赏
  • 举报
回复
可以的啊,你直接在数据库中运行一下这句话试试
select(7.45-3.1)*(5-2)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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