<< Click to Display Table of Contents >> ETL > 14.0 > Implementation Guide > Tutorial and implementation guide > Steps > Mapping Switch-case statement |
Swich-case statement can be used to define branches for possible values.
The definition has the following syntax:
"<target-column-name>":
{
"column": "<source-column-name>",
"switch": [
{
"case": "<case-1>",
"then": "<value-1>"
},
{
"case": "<case-2>",
"then": "<value-2>"
},
{
"default": "<default-value>"
}
]
}
}
It is not possible to mix the property default with case/then in the same object. The default section is optional, and number of case-then tokens can be any. The default value must be always the last in the collection.
Given the following table SourceTable:
Name |
Country |
---|---|
John |
US |
Helmut |
DE |
Marcin |
PL |
Sergey |
UA |
Sami |
FI |
Alon |
UK |
And the following JSON step definition:
{
"id": 1,
"name": "Example of switch-case",
"type": "map",
"source": "Countries",
"target": "Countries_SwitchCase",
"columns": {
"Name": "Name",
"Country": {
"column": "Country",
"switch": [
{ "case": "PL", "then": "Poland" },
{ "case": "DE", "then": "Germany" },
{ "case": "US", "then": "United States" },
{ "case": "FI", "then": "Finland" },
{ "case": "UA", "then": "Ukraine" },
{ "default": "Other country" }
]
}
}
}
The following result table Countries_SwitchCase is expected:
Name |
Country |
---|---|
John |
United States |
Helmut |
Germany |
Marcin |
Poland |
Sergey |
Ukraine |
Sami |
Finland |
Alon |
Other country |
It is possible to define a custom value returned, if the source column does not exist in the table. For more information about the usage of fallback values, see the Fallback columns chapter.