转换Excel"如果"函数到T-SQL查询

时间:2015-11-19 15:48:46

标签: sql-server excel

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

使用Excel计算" D"的值在专栏" H"我使用了以下公式:

=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查询语句,我将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:1)

在SQL SERVER中,您可以使用CASE表达式来计算条件列表,并返回多个可能的结果表达式之一。

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