【发布时间】:2011-05-12 23:19:39
【问题描述】:
我不知道如何表达这个问题,如果已经解决,我很抱歉。
我将业务规则总结为给定两个输入的输出表。对于一个轴上的五个可能值中的每一个,以及另一个轴上的五个值中的每一个,都有一个输出。这 25 个单元格中有 10 种不同的可能性,因此并不是每个输入对都有唯一的输出。
我已经用嵌套的 CASE 语句在 TSQL 中对这些规则进行了编码,但是很难调试和修改。在 C# 中,我可能会使用数组文字。我想知道是否有一个学术主题涉及将逻辑规则转换为矩阵,反之亦然。
例如,可以翻译这个微不足道的矩阵:
甲乙丙 -- -- -- -- X 1 1 0 是 0 1 0...变成这样的规则:
if B OR (A and X) then 1 else 0
...或者,在详细的 SQL 中:
CASE WHEN FieldABC = 'B' THEN 1
WHEN FieldABX = 'A' AND FieldXY = 'X' THEN 1
ELSE 0
我正在寻找一种处理大型矩阵的好方法,尤其是我可以在 SQL 中使用的方法(MS SQL 2K8,如果重要的话)。有什么建议?是否有此类翻译的术语,我应该搜索一下?
【问题讨论】:
-
我仍然不是 100% 清楚你在问什么,但你考虑过CLR?
-
@wtjones:这绝对是一种选择,尽管它需要一些管理开销,我希望尽可能避免。我在这个问题中寻找的是更抽象的:什么是我可以用来将表格逻辑转换为 AND 和 OR(或 &&s 和 ||s)的方法。首先,这种转换有名称吗?
-
我一直在通过stackoverflow.com/questions/4763721/… 阅读卡诺图;看起来这可能是正确的方向。意见?
-
不,也许不是;这些似乎仅限于回答二元问题。我的需要是根据多个输入的不同值提供多个输出之一;假设输入是布尔值是合理的。
标签: sql logic business-logic