我想在数据库中存储一个布尔表达式,并对其进行评估。没有必要存储完整的表达式树,一个字符串可能就可以了。
我想象了一个这样的方案:Criteria (expression_to_evaluate, value_to_return)
例如,假设我有一个匹配年龄在 20 到 40 岁之间的人的表达式:
(var >= 20 AND var <= 40)
var
必须用相关人员的年龄替换,如果匹配,则应返回该行。如果不匹配,则应考虑下一行,评估该表达式,依此类推。
可以有更复杂的表达式,例如:
((var >= 20 AND var <= 40) OR (var < 10))
甚至可能有两个变量:
((var1 <= 10) AND (var2 >= 10 OR var1 == 20))
这应该在 SQL (SQL Server 2005/2008) 或 C# 中完成。匹配行的值应返回并在 C# 中进一步处理。
这甚至可能吗?