将Excel“If”函数转换为T-SQL查询

我在SQL Server数据库和Excel中有一个表,看起来像这样

使用Excel计算列“H”中“D”的值我已经使用了下面的公式:

=IF(G2="NULL",100,IF(A2="NULL",((E2-3-F2)/D2),IF(D2="NULL",((B2-3-C2)/A2),IF(((B2-3-C2)/A2)<((E2-3-F2)/D2),((B2-3-C2)/A2),((E2-3-F2)/D2))))) 

公式工作正常,如果我想在公式中更改值3到3.2,并更新Excel中的值,我只是将3更改为3.2,使其看起来像下面的公式:

 =IF(G2="NULL",100,IF(A2="NULL",((E2-3.2-F2)/D2),IF(D2="NULL",((B2-3.2-C2)/A2),IF(((B2-3.2-C2)/A2)<((E2-3.2-F2)/D2),((B2-3.2-C2)/A2),((E2-3.2-F2)/D2))))) 

然而,我不知道如何将这个Excel公式转换为SQL查询,我将不胜感激,如果任何人都可以帮助我在编写正确的SQL查询语句基于上述公式。 提前致谢。

在SQL SERVER中,您可以使用CASEexpression式来评估条件列表,并返回多个可能的结果expression式之一。

 SELECT CASE WHEN G2 IS NULL THEN 100 ELSE CASE WHEN A2 IS NULL THEN (E2-3.2-F2)/D2 ELSE CASE WHEN D2 IS NULL THEN (B2-3.2-C2)/A2 ELSE CASE WHEN (B2-3.2-C2)/A2 < (E2-3.2-F2)/D2 THEN (B2-3.2-C2)/A2 ELSE (E2-3.2-F2)/D2 END END END END AS Test FROM YourTable