我不确定如何表达这个问题,所以如果已经解决了我的道歉。
我将业务规则汇总为两个输入的输出表。对于一个轴上的五个可能值中的每一个,以及另一个轴上的五个值中的每一个,都有一个输出。这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,如果重要的话)。有什么建议?是否有这种翻译的术语,我应该搜索哪个?
答案 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;