What is the equivalent of Select Case in Access SQL?

后端 未结 3 1016
温柔的废话
温柔的废话 2020-11-30 04:28

I have a query which includes fields named openingbalance and commissions. I would like to compute values for commissions based on openingbala

3条回答
  •  长情又很酷
    2020-11-30 05:22

    Consider the Switch Function as an alternative to multiple IIf() expressions. It will return the value from the first expression/value pair where the expression evaluates as True, and ignore any remaining pairs. The concept is similar to the SELECT ... CASE approach you referenced but which is not available in Access SQL.

    If you want to display a calculated field as commission:

    SELECT
        Switch(
            OpeningBalance < 5001, 20,
            OpeningBalance < 10001, 30,
            OpeningBalance < 20001, 40,
            OpeningBalance >= 20001, 50
            ) AS commission
    FROM YourTable;
    

    If you want to store that calculated value to a field named commission:

    UPDATE YourTable
    SET commission =
        Switch(
            OpeningBalance < 5001, 20,
            OpeningBalance < 10001, 30,
            OpeningBalance < 20001, 40,
            OpeningBalance >= 20001, 50
            );
    

    Either way, see whether you find Switch() easier to understand and manage. Multiple IIf()s can become mind-boggling as the number of conditions grows.

提交回复
热议问题