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 |
中文翻译¶
Case¶
支持:批处理(Batch)、快速处理(Faster)、流处理(Streaming)
根据条件在不同分支之间进行选择。
表达式类别: 常用
声明参数¶
- 默认值(Default): 当所有分支条件均评估为 false 时选择此值。
表达式\ - 可选 分支(Branches): 在返回默认值之前评估的分支。
列表\<元组\<表达式\<布尔值>, 表达式\>>
类型变量约束: T 接受任意类型(AnyType)
输出类型: T
示例¶
示例 1:基本用例¶
参数值:
- 默认值: Yes
- 分支: [(
lessThan(
left:miles,
right: 15000,
), No)]
| miles | 输出 |
|---|---|
| 20053 | Yes |
| 10210 | No |
| 34120 | Yes |
示例 2:边界情况¶
描述: 当多个分支输出不同类型的小数时,我们会扩展类型以容纳所有值。
参数值:
- 默认值:
decimalThree - 分支: [(
equals(
left:value,
right: 1,
),decimalOne), (
equals(
left:value,
right: 2,
),decimalTwo)]
| value | decimalOne | decimalTwo | decimalThree | 输出 |
|---|---|---|---|---|
| 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 |
示例 3:边界情况¶
描述: 当扩展后的类型过大时,我们会截断类型,溢出部分变为 null。
参数值:
- 默认值:
decimalThree - 分支: [(
equals(
left:value,
right: 1,
),decimalOne), (
equals(
left:value,
right: 2,
),decimalTwo)]
| value | decimalOne | decimalTwo | decimalThree | 输出 |
|---|---|---|---|---|
| 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 |