Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

How To Avoid multiple if conditions

How can I use 'Pick with match' functions for handling below multiple if conditions. I want to optimise below expression. Pls. help.

=if( DischargeDRG= '280' or DischargeDRG= '281' or DischargeDRG= '282' or DischargeDRG= '283' or DischargeDRG= '284' or DischargeDRG= '285','AMI'     

  ,if(DischargeDRG=  '216'or DischargeDRG='217'or DischargeDRG='218'or DischargeDRG='219'or DischargeDRG='220'or DischargeDRG='221'or DischargeDRG='231'or DischargeDRG='232'or DischargeDRG='233'or DischargeDRG='234'or DischargeDRG='235'or DischargeDRG='236', 'CABG or Valve'    

     ,if(DischargeDRG=  '246' or DischargeDRG= '247' or DischargeDRG= '248' or DischargeDRG= '249' or DischargeDRG= '250' or DischargeDRG= '251' or DischargeDRG= '286' or DischargeDRG= '287', 'Coronary Cath'    

       ,if(DischargeDRG= '222' or DischargeDRG= '223' or DischargeDRG= '224' or DischargeDRG= '225' or DischargeDRG= '226' or DischargeDRG= '227' or DischargeDRG= '242' or DischargeDRG= '243' or DischargeDRG= '244' or DischargeDRG= '245' or DischargeDRG= '258' or DischargeDRG= '259' or DischargeDRG= '260' or DischargeDRG= '261' or DischargeDRG= '262' or DischargeDRG= '265','EP'    

         ,if(DischargeDRG= '291' or DischargeDRG= '292' or DischargeDRG= '293','HF'   

            ,if(DischargeDRG= '288' or DischargeDRG= '289' or DischargeDRG= '290' or DischargeDRG= '294' or DischargeDRG= '295' or DischargeDRG= '296' or DischargeDRG= '297' or DischargeDRG= '298' or DischargeDRG= '299' or DischargeDRG= '300' or DischargeDRG= '301' or DischargeDRG= '302' or DischargeDRG= '303' or DischargeDRG= '304' or DischargeDRG= '305' or DischargeDRG= '306' or DischargeDRG= '307' or DischargeDRG= '308' or DischargeDRG= '309' or DischargeDRG= '310' or DischargeDRG= '311' or DischargeDRG= '312' or DischargeDRG= '313' or DischargeDRG= '314' or DischargeDRG= '315' or DischargeDRG= '316','Other Medical'    

                ,if(DischargeDRG= '228' or DischargeDRG= '229' or DischargeDRG= '230' or DischargeDRG= '237' or DischargeDRG= '238' or DischargeDRG= '239' or DischargeDRG= '240' or DischargeDRG= '241' or DischargeDRG= '252' or DischargeDRG= '253' or DischargeDRG= '254' or DischargeDRG= '255' or DischargeDRG= '256' or DischargeDRG= '257' or DischargeDRG= '263' or DischargeDRG= '264','Other Surgical'   

                  ,if(DischargeDRG= '1' or DischargeDRG= '2' or DischargeDRG= '001' or DischargeDRG= '002' or DischargeDRG= '215','VAD or Transplant',   

        'Non-Circulatory'

     ))))))))

1 Reply
its_anandrjs

Hi Pankaj,

Use Mapping table for this and Map this table with the Fact table or transaction table where this if logic requires. By doing this your application having good performance in load perspective also. For mapping create another mapping table and load the data as mapping table or you can use Inline tables. I explain this in Inline table

Ex:-

DiscMap:

Mapping Load * Inline [

DischargeDRG,Desc

280,AMI

281,AMI

282,AMI

283,AMI

284,AMI

285,AMI

220,Valve

221,Valve  ];

Fact:

Load

ApplyMap('DiscMap',DischargeDRG,'Non-Circulatory') as Details,

Fields,

....

From Source;

Regards

Anand