MS-Access iif语句转换为T-SQL

时间:2015-02-17 08:58:12

标签: sql sql-server tsql iif

尝试转换访问权限iif语句

IIf(FD.[Sales_Value] = 0, 'Component',
    (IIf(FD.[Lines] = 0,    
        IIf(FD.[Sales_Value] = FD.[Gross_Contribution],
            'Composite', 'N'),
        'N')
    )
) AS Composite,

我现在有这个,但它不喜欢它

CASE WHEN FD.[Sales_Value] = 0 THEN 'Component'
ELSE CASE WHEN FD.[Lines] = 0 THEN
        CASE WHEN FD.[Sales_Value] = FD.[Gross_Contribution] THEN 'Composite' ELSE 'N' --END
        ELSE
            'N'
        END 
END
    AS Composite

1 个答案:

答案 0 :(得分:2)

这应该可行,更易读:

CASE 
    WHEN FD.[Sales_Value] = 0 THEN 'Component'
    WHEN FD.[Lines] = 0 AND FD.[Sales_Value] = FD.[Gross_Contribution] 
       THEN 'Composite' 
    ELSE 'N'
END
    AS Composite