The case Statement

Syntax
case [  ] {
    [ statements ]
}

The case statement is used to match data inside of a switch statement. The case statement cannot be used outside of a switch statement.

The <match> text can be omitted, which means that the case statement is the "default" and will match input that is not matched by another case statement inside of the same switch.

The <match> text can be an attribute reference such as &User-Name, or it can be a string. If the match text is a dynamically expanded string, then the match is performed on the output of the string expansion.

Note
It is strongly recommended to use static text for the <match> text. Matching dynamically expanded strings, host names, or external programs can degrade performance enormously.
Example
switch &Class {
    case &Proxy-State {
        ...
    }

    case "%{sql:SELECT ...}" {
        ...
    }

    case 0xabcdef {
        ...
    }

    case {
        update reply {
            Reply-Message += "Contains %{Foreach-Variable-0}"
        }
    }
}