SSIS - How to Write Case Statement In SSIS Package
Scenario:
We have received a text source file that has the abbreviation for Region Code. We want to convert these region codes to region name such asIf RegionCode is AS then RegionName="ASIA'
If RegionCode is NA then RegionName="NORTH AMERICA'
If RegionCode is EU then RegionName="EUROPE'
If non of above them "UNKNOWN".
Fig 1: Text Source File with ClientRegion
Solution:
If this data would be in table we could have write a query with case statement like below
Select id,Name,ClientRegion, Case When ClientRegion='AS' THEN 'ASIA' WHEN ClientRegion='NA' THEN 'NORTH AMERICA' WHEN ClientRegion='EU' THEN 'EUROPE' ELSE 'UNKNOWN' END AS RegionName from dbo.Client
As we are reading the data from text file we can't write the TSQL statement. We can load this data to some table and then write the statement but we don't want to do that. We will use Derived Column Transformation to write expression to get our Region Name.
Step 1:
Create your SSIS Package. Inside the SSIS Package, Bring Data Flow Task. As we need to read the data from text file, Bring Flat File Source and create connection to source file.
Once the connection is created, Bring Derived Column Transformation and connect to Flat File Source and write expressions as given below. These expressions will give us the results like our Case statement.
ClientRegion == "AS" ? "ASIA" : ClientRegion == "NA" ? "NORTH AMERICA" : ClientRegion == "EU" ? "EUROPE" : "UNKNOWN"
Fig 2: Write Case Statement in Derived Column Transformation in SSIS Package
Step 2:
Bring Multicast Transformation as test destination and then connect Derived Column Transformation to it. Add the Data Viewer so we can see the output. Run the SSIS Package and see the output.
Fig 3:Write Case Statement in SSIS Package By Using Derived Column Transformation
As we can see that the expression worked as expected.
No comments:
Post a Comment