Skip to main content
Pentaho Documentation

Switch-Case

Parent article

This step implements switch/case statements found in popular programming languages like Java.

The PDI implementation routes a row of data to a Target step based on a comparison Value in a specified field.

Diagram illustrating how switch case works

Options

The Switch / case step includes the following options:

Screen capture showing the options available for the switch case           step
OptionDescription
Step nameSpecify the unique name of the Switch/case step on the canvas. You can customize the name or leave it as the default.
Field name to switchSpecify the field name that contains the Value to use as a basis for the row routing. Values are specified in the Case values entry table.
Use string contains comparisonIf selected, the comparison will be true if the Value is found anywhere in the field being tested.

If cleared, the Value must exactly match the field.

Case value data typeSpecify the data type of the values listed in the Case values entry table.
Case value conversion maskSpecify the conversion mask of the values listed in Case values (numeric / data values).
Case value decimal symbolSpecify the decimal symbol of the values listed in Case values (numeric values).
Case value grouping symbolSpecify the grouping symbol of the values listed in Case values (numeric values).
Case valuesIn the table, per each row, specify a single Value and Target step pair. You may specify the same Target step in more than one single row.

To specify a null value, leave the Value for a row blank while entering a Target Step.

Default target stepSpecify the name of a target step in the transformation as a default for any unmatched rows. All rows that do not match any of the Case values are sent to this target step.

Example

A sample transformation demonstrating the capabilities of this step is available in the data-integration/samples folder, included with the Pentaho distribution package.

data-integration/samples/transformations/files/Switch-Case - basic sample.ktr

Metadata injection support

All fields of this step support metadata injection. You can use this step with ETL metadata injection to pass metadata to your transformation at runtime.