# Case > Supported in: Batch, Faster, Streaming Choose between different branches based on conditions. **Expression categories:** Popular ## Declared arguments * **Default:** This value is chosen if all branches evaluate to false.
*Expression\* * *optional* **Branches:** Branches to evaluate before returning default value.
*List\, Expression\>>* **Type variable bounds:** *T accepts AnyType* **Output type:** *T* ## Examples ### Example 1: Base case **Argument values:** * **Default:** Yes * **Branches:** \[(
lessThan(
 left: `miles`,
 right: 15000,
), No)] | miles | **Output** | | ----- | ----- | | 20053 | Yes | | 10210 | No | | 34120 | Yes | *** ### Example 2: Edge case **Description:** When multiple branches output decimals of differing types, we widen the type to fit all. **Argument values:** * **Default:** `decimalThree` * **Branches:** \[(
equals(
 left: `value`,
 right: 1,
), `decimalOne`), (
equals(
 left: `value`,
 right: 2,
), `decimalTwo`)] | value | decimalOne | decimalTwo | decimalThree | **Output** | | ----- | ----- | ----- | ----- | ----- | | 1 | 111.11 | 2.2222 | 3333333.333 | 111.1100 | | 2 | 111.11 | 2.2222 | 3333333.333 | 2.2222 | | 3 | 111.11 | 2.2222 | 3333333.333 | 3333333.3330 | *** ### Example 3: Edge case **Description:** When the wider type is too large, we truncate the type and overflows become null. **Argument values:** * **Default:** `decimalThree` * **Branches:** \[(
equals(
 left: `value`,
 right: 1,
), `decimalOne`), (
equals(
 left: `value`,
 right: 2,
), `decimalTwo`)] | value | decimalOne | decimalTwo | decimalThree | **Output** | | ----- | ----- | ----- | ----- | ----- | | 1 | 111111111111111111111111111111111111.11 | 2222222222222222222222222222.2222222222 | 333333333333333333.33333333333333333333 | *null* | | 2 | 111111111111111111111111111111111111.11 | 2222222222222222222222222222.2222222222 | 333333333333333333.33333333333333333333 | *null* | | 3 | 111111111111111111111111111111111111.11 | 2222222222222222222222222222.2222222222 | 333333333333333333.33333333333333333333 | 333333333333333333.33333333333333333333 | | 3 | 111111111111111111111111111111111111.11 | 2222222222222222222222222222.2222222222 | 100.33333333333333333333 | 100.33333333333333333333 | | 1 | 111.11 | 2222222222222222222222222222.2222222222 | 333333333333333333.33333333333333333333 | 111.11000000000000000000 | ***