做工资计算时遇到的问题

yunshiyu 2004-12-07 02:08:55
在做工资计算时,表中一列存的是工资的计算公式,现在可以把公式显示成‘100-20+32’这样的字符串,如何才能存成数值?(112)
如何才能进行批处理的修改所有的公式,改为数值?
自己可以用游标实现,觉得一定有更容易的方法
希望大家帮忙!
...全文
189 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
playyuer 2004-12-08
  • 打赏
  • 举报
回复
--drop table T

select * into T
from
(
select '100*0.1 + 10 / 9 *100 -100 + 0.9' as F
union all
select '101 * 0.9'
union all
select '101+10+9'
) T

select *
from T

declare @F varchar(100)
declare @ decimal(10,5)
declare @sql nvarchar(100)

DECLARE xcursor CURSOR FOR
SELECT F
FROM T
for update of F

OPEN xcursor

FETCH NEXT FROM xcursor
INTO @F

WHILE @@FETCH_STATUS = 0
BEGIN

set @sql = N'set @ = ' + cast(@F as nvarchar(100))
exec SP_EXECUTESQL @sql ,N'@ decimal(8,2) out', @ out

select @F,@

UPDATE T
SET F = cast(@ as varchar(100))
WHERE CURRENT OF xcursor

FETCH NEXT FROM xcursor INTO @F

end
CLOSE xcursor
DEALLOCATE xcursor

select *
from T
pennyclz 2004-12-07
  • 打赏
  • 举报
回复
up
didoleo 2004-12-07
  • 打赏
  • 举报
回复
上面的不对,那样还是要用游标.
didoleo 2004-12-07
  • 打赏
  • 举报
回复
--这样可以吗
declare @formule varchar(8000)
declare @sql varchar(8000)
select @formule='100-20+30'
set @sql='select '+@formule
exec(@sql)
yunshiyu 2004-12-07
  • 打赏
  • 举报
回复
我也是这样做的
但多条记录的时候是否一定要用游标做呢?
没有简单点的办法吗?
scorpiowell 2004-12-07
  • 打赏
  • 举报
回复
动态生成sql
yunshiyu 2004-12-07
  • 打赏
  • 举报
回复
把‘100-20+32’字符串转换成:112(数值)就行啊
chd2001 2004-12-07
  • 打赏
  • 举报
回复
讲清楚点把,怎么换法。‘100-20+32’要转换成什么样的 才行?

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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