将可能性表转换为逻辑语句的方法

时间:2011-05-12 23:19:39

标签: sql logic business-logic

我不确定如何表达这个问题,所以如果已经解决了我的道歉。

我将业务规则汇总为两个输入的输出表。对于一个轴上的五个可能值中的每一个,以及另一个轴上的五个值中的每一个,都有一个输出。这25个单元格中有十种不同的可能性,因此并非每个输入对都具有唯一的输出。

我已使用嵌套的CASE语句在TSQL中编码这些规则,但很难调试和修改。在C#中,我可能会使用数组文字。我想知道是否存在与将逻辑规则转换为矩阵有关的学术主题,反之亦然。

作为一个例子,人们可以翻译这个平凡的矩阵:

   A  B  C
-- -- -- --
X  1  1  0
Y  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,如果重要的话)。有什么建议?是否有这种翻译的术语,我应该搜索哪个?

1 个答案:

答案 0 :(得分:2)

听起来像是查找5x5数据网格。轴上的输入和每个单元格中的输出:

    Y=1 Y=2 Y=3 Y=4 Y=5
x=1  A   A   D   B   A
x=2  B   A   A   B   B
x=3  C   B   B   B   B
x=4  C   C   C   D   D
x=5  C   C   C   C   C

您可以将其存储在x,y,outvalue三元组的表中,然后只需查看该表。

SELECT OUTVALUE FROM BUSINESS_RULES WHERE X = @X and Y = @Y;
相关问题