Sql server 将包含*或的Excel公式转换为TSQL

Sql server 将包含*或的Excel公式转换为TSQL,sql-server,excel,tsql,excel-formula,Sql Server,Excel,Tsql,Excel Formula,我想把这个公式转换成T-SQL =IF(D6>F6,D6-C6-1,F6-C6-1)*OR(IF(F6-C6-1<0,0,F6-C6-1)) =IF(D6>F6,D6-C6-1,F6-C6-1)*或(IF(F6-C6-1F6,D6-C6-1,F6-C6-1)返回35和公式的第二部分IF(F6-C6-1,如我之前的评论所示: OR中的第二个参数是可选的。事实上,如果OR的任何参数为“TRUE”,则无论您使用了多少(可选)参数,OR都只返回“TRUE”。在本例中,“OR”只评估第二个“

我想把这个公式转换成T-SQL

=IF(D6>F6,D6-C6-1,F6-C6-1)*OR(IF(F6-C6-1<0,0,F6-C6-1))

=IF(D6>F6,D6-C6-1,F6-C6-1)*或(IF(F6-C6-1F6,D6-C6-1,F6-C6-1)返回35和公式的第二部分IF(F6-C6-1,如我之前的评论所示:


OR中的第二个参数是可选的。事实上,如果OR的任何参数为“TRUE”,则无论您使用了多少(可选)参数,OR都只返回“TRUE”。在本例中,“OR”只评估第二个“if”(即35)的结果。因此>”或(35)'的计算结果为TRUE。由于您将其相乘,因此它将再次计算为最终结果'35*1'。该公式看起来很奇怪,因为在这种情况下'OR'将始终返回TRUE。该公式也可以是'=IF(D6>F6,D6-C6-1,F6-C6-1)“

Excel中的
函数一次只接受两个参数,因此我不知道您的源公式为什么要使用它。感谢@TimBiegeleisen-有兴趣知道为什么结果不是1225。只是想知道该公式如何得到35,因为它是正确的。您使用的是哪个office版本….?Excel office 365请随意回答,我将除JVDVT外,如果F6-C6-1,则该零件不返回零