公式的SQL解析器作为参数传递

时间:2012-07-17 07:42:40

标签: sql parsing replace formula

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

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

现在每个部分都包含问题及其分数。例如。当E1 = [1]+[2]-[3]+[4]+[5]+[6]表示问题编号时,[number]

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

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

我可以想象它会像递归函数一样,但任何人都可以帮助我朝着正确的方向前进吗?

亲切的问候。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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