我有一个要求,我需要使用 DataColumn.Expression 属性语法(下面提供的链接)来运行一些非常复杂的方程,包括一些多项式方程,如果我不对它们设置一些混合/最大限制,它们将走一些我们不想要的极端。本质上,我有许多嵌套的 IIF 语句,同时试图保持多项式方程不高于 200 或小于 70,同时进入新的温度值范围。如果我可以在 .NET 表达式属性语法中使用某种类型的最小/最大函数,那就太好了,但我可以找到任何适用于此的方法。我知道我下面的语法也不正确,因为如果我没看错,如果第一个表达式失败,它的假面将为零。任何帮助或方向将不胜感激。如果需要更好地解释这些,请告诉我。在下面的链接之外的任何地方都很难找到有关此语法的任何扩展资源。
IIF([temp]>=0 and [temp]<20,
IIF((23+([duration]*6))-(0.4779*[temp])+(0.06755*([temp]^2))-(0.002237*([temp]^3))+(0.0001321*([temp]^4))<70, 70,
IIF((23+([duration]*6))-(0.4779*[temp])+(0.06755*([temp]^2))-(0.002237*([temp]^3))+(0.0001321*([temp]^4))>200, 200,
IIF([temp]>=0 and [temp]<20,
23+([duration]*6))-(0.4779*[temp])+(0.06755*([temp]^2))-(0.002237*([temp]^3))+(0.0001321*([temp]^4),
IIF([temp]>=0 and [temp]<25, 60,
IIF([temp]>=0 and [temp]<30, 50,
IIF([temp]>=0 and [temp]<35, 0,
IIF([temp]>=20,
IIF((33+([duration]*6))-(0.3779*[temp])+(0.04758*([temp]^2))-(0.0017*([temp]^3))+(0.000151*([temp]^4))<70, 70,
IIF((33+([duration]*6))-(0.3779*[temp])+(0.04758*([temp]^2))-(0.0017*([temp]^3))+(0.000151*([temp]^4))>200, 200,
IIF([temp]>=20,
33+([duration]*6))-(0.3779*[temp])+(0.04758*([temp]^2))-(0.0017*([temp]^3))+(0.000151*([temp]^4),
IIF([temp]>=0 and [temp]<25, 60,
IIF([temp]>=0 and [temp]<30, 50,
IIF([temp]>=0 and [temp]<35, 0,)))))), 0))))))), 0)