get me the resultant
input:- 1 x,y,z output:- 1 x
2 a,b 1 y
3 c 1 z
2 a
2 b
3 c
Answer Posted / zer0
I think this might work for you .........
Use the following flow :
Source ---> SQ ---> Expression ---> Normalizer ---> Filter -
--> Target
In the expression use variable ports to form 3 columns
depending on the values received in Column2. I mean to say
the given value is X,Y,Z in column2 so create 3 ports and
eac port will have 1-1 values i.e. X then Y then Z.
For this use SUBSTR and INSTR functions.
SUBSTR to get the part of the string and INSTR to find the
position.
VARIABLE_PORT1 ---> substr(column2,1,1)
VARIABLE_PORT2 ---> IIF(instr(column2,',',1,1)!=0,substr
(column2,instr(column2,',',1,1)+1,1),NULL)
VARIABLE_PORT3 ---> IIF(instr(column2,',',1,2)!=0,substr
(column2,instr(column2,',',1,2)+1,1),NULL)
Direct the variable ports to 3 output ports and this output
ports will go to normalizer. In normalizer create 2 ports
Column1 and Column2 and put the number of occurances for
column2 as 3.
The output will be 2 ports from normalizer which will be
feed to filter. In filter, filter out the null values in
column2 if it exists (IIF(ISNULL(Column2),FALSE,TRUE)
Direct the output of filter to target.
Hope this works !!!!!!!!!!
Revert Back if it works
| Is This Answer Correct ? | 7 Yes | 1 No |
Post New Answer View All Answers
Quickly characterize reusable change?
What are the features of complex mapping?
Briefly define reusable transformation?
rank() over (partition by opt2.dim_plat_site_id, opt2.dim_site_opt_sid order by case when opt2.dm_market_flg in ('Y', 'U') then 1 else 2 end, lkp.contact_rank) as rank1, case opt2.contact_type when 'Buyer' then row_number() over (partition by opt2.dim_plat_site_id, opt2.dim_site_opt_sid, lkp.contact_rank order by has_name_flg desc, ship_to_flg desc , last_order_dt desc) when 'Decision Maker' then row_number() over (partition by opt2.dim_plat_site_id, opt2.dim_site_opt_sid, lkp.contact_rank order by has_name_flg desc , last_quote_dt desc , mailability_score desc , source_ranking desc) when 'Influencer' then row_number() over (partition by opt2.dim_plat_site_id, opt2.dim_site_opt_sid, lkp.contact_rank order by has_name_flg desc, mailability_score desc, source_ranking desc) when 'Payer' then row_number() over (partition by opt2.dim_plat_site_id, opt2.dim_site_opt_sid, lkp.contact_rank order by has_name_flg desc, mailability_score desc, source_ranking desc) --elu 05/28/2013 else row_number() over (partition by opt2.dim_plat_site_id, opt2.dim_site_opt_sid, lkp.contact_rank order by has_name_flg desc, mailability_score desc, source_ranking desc) end rank2 row_number() over (partition by opt3.dim_plat_site_id, opt3.dim_site_opt_sid order by rank1,rank2) as "rank", case when "rank"<= opt3.maximum_value then 'Y' else 'N' end as include_flg
How to go to the older version for a mapping?
Enlist the tasks for which source qualifier transformation is used.
What are Dimensional table?
What is the commit type if you have a transaction control transformation in the mapping?
What is the need of an ETL tool?
expain about the tune parameters?
What is target designer and target load order?
What is different between the data warehouse and data mart?
what is INFORMATICA TESTING process
Global and Local shortcuts. Advantages.
if we have a delimiters at unwanted places in a flat file how can we over come those.