Skip to main content
Announcements
See what Drew Clarke has to say about the Qlik Talend Cloud launch! READ THE BLOG
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Where to put Switch Case statement: Load or SQL SELECT?

Hello to all.  I am trying to write a load statement with a switch case in it.  For some reason, this is not working.  I was wondering if you can put a switch case in a load statement, and if so, why mine is not working.

SYSyPSPULL:

LOAD PSPLN As TASK,

     PSCASN,

     PSSEA,

     PSLTYP,

     PSAREA,

     PSZONE,

     PSAISL,

     PSBAY,

     PSLEVL,

     PSPOSN,

     PSSYR,

     PSSTYL,

     PSSSFX,

     LEFT(PSSYR & PSSTYL & PSSSFX,3) AS SAPMERCHDIVISIONCODE,

     PSSYR & PSSTYL & PSSSFX AS SKU,

     PSSZDS,

     PSSQTY,

     PSQPUL,

     PSRLOC,

     PSSTAT,

     PSDCR,

     PSCRT;

    

     SWITCH RESERVELOCATION

     CASE 001

         LOAD TRIM(PSAREA) & TRIM(PSZONE) & Left(TRIM(PSAISL),1) & Right(TRIM(PSAISL),1) & TRIM(PSBAY);

     CASE 003

         LOAD TRIM(PSAISL) & TRIM(PSLEVL) & TRIM(PSPOSN);

     DEFAULT

        LOAD TRIM(PSAISL) & TRIM(PSLEVL) & TRIM(PSPOSN);

     END SWITCH;

SELECT * FROM PKMANH221D.PSPULL00

WHERE PSCRT ='1' AND PSDCR >= $(zconvDate);

3 Replies
Anonymous
Not applicable
Author

Thank you for the quick response. Unfortunately this does not answer my question. I am trying to understand if the switch statement will work in a Load statement or if it has to be used only in the SQL Select kind of statement. Thanks.

jagan
Luminary Alumni
Luminary Alumni

Hi,

Try like this

SYSyPSPULL:
LOAD PSPLN As TASK,
     PSCASN,
     PSSEA,
     PSLTYP,
     PSAREA,
     PSZONE,
     PSAISL,
     PSBAY,
     PSLEVL,
     PSPOSN,
     PSSYR,
     PSSTYL,
     PSSSFX,
     LEFT(PSSYR & PSSTYL & PSSSFX,3) AS SAPMERCHDIVISIONCODE,
     PSSYR & PSSTYL & PSSSFX AS SKU,
     PSSZDS,
     PSSQTY,
     PSQPUL,
     PSRLOC,
     PSSTAT,
     PSDCR,
     PSCRT,
    
     If( RESERVELOCATION = '001', TRIM(PSAREA) & TRIM(PSZONE) & Left(TRIM(PSAISL),1) & Right(TRIM(PSAISL),1) & TRIM(PSBAY)
     If(RESERVELOCATION = '003', TRIM(PSAISL) & TRIM(PSLEVL) & TRIM(PSPOSN),
     TRIM(PSAISL) & TRIM(PSLEVL) & TRIM(PSPOSN))) AS DimensionName;   
SELECT * FROM PKMANH221D.PSPULL00
WHERE PSCRT ='1' AND PSDCR >= $(zconvDate);

Hope this helps you.

Regads,

Jagan.

tresesco
MVP
MVP

SWITCH  CASE works in LOAD script. What is the error you are getting? You can try something like:

CASE '001'   ........... if they are not numeric.