1

我的任务是编写一个存储过程,它将用户指定的公式作为参数,并使用公式上的表格进行计算。

这是为了能力测试的结果。测试分为多个部分,每个部分都分配有一个变量,例如。E1E2

现在每个部分都由带有分数的问题组成。例如。E1 = [1]+[2]-[3]+[4]+[5]+[6][number]指示问题编号时。

现在用户将指定一个类似上面的公式[1]+[2]-[3]+[4]+[5]+[6],我必须编写一个解析器,用该问题的分数替换问题编号。但是其中有一个障碍,因为一个部分可以参考另一部分的分数,例如。E2 = [7]+[8]+([6]-E1)+[9].

所以我需要编写一个解析器来解析字符串,用分数替换 [Number],如果它达到一个可变数字,首先计算部分分数,然后再继续。

我可以想象这将是一个递归函数,但任何人都可以帮助我找到正确的方向吗?

亲切的问候。

4

2 回答 2

1

我不是说你做不到,但是 SQL 并不是这种操作的最佳环境;同样,你可以用西瓜把钉子钉在墙上。您没有指定您的特定平台 - 如果它是 Microsoft SQL,那么 SQL CLR 过程可能会使必要的操作更容易。

于 2012-07-17T07:51:30.217 回答
1

如果您使用的是 mssql - 那么您还可以使用动态 sql,例如exec('select 2*2')

于 2012-12-09T17:47:11.307 回答