Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Join us in Bucharest on Sept 18th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
mcoolen01
Contributor
Contributor

how to use case statement in query using sqlbase database

Hello,

I am trying to carry out a case statement in the SQL section using a SQLBase database but I cannot find the correct syntax.

Can anybody help me finding the correct syntax. What I want to do is concatenate a zero if the period is smaller than 10.

Example: If the periode is 9, I want to use 09.

I tried:

LOAD

     Bookyear,

     Period;

SQL Bookyear,

     Periode

     CASE

          WHEN period < 10

          THEN (0||periode)

          ELSE (period)

          END as Period

FROM CROPEN

Thank you for helping me with this issue.

4 Replies
maxgro
MVP
MVP

try

LOAD

     Bookyear,

     num(Period, '00') as Period

     ;

SQL Bookyear,

     Period

FROM CROPEN

     ;

Oleg_Troyansky
Partner Ambassador/MVP
Partner Ambassador/MVP

Hi Michel,

I'm not too sure about the exact SQLBase solution, but I could offer a QlikView solution that seems to be a lot more elegant. You can simply format the QlikView number to always carry two digits. Your script would look like this:

LOAD

     Bookyear,

     NUM(Period, '00') as Period

;

SQL

     Bookyear,

     Periode as Period

FROM CROPEN

;

Cheers,

Oleg Troyansky

Upgrade your Qlik skills at the Masters Summit for Qlik - coming to Boston, MA this October!

mcoolen01
Contributor
Contributor
Author

Hello Oleg,

Thank you for helping me out, I appreciate that.

The thing is that I need to load (sql) data smaller than e.g. year 2016 period 10.

So if I use (e.g.) 'WHERE period <= 10' in the sql section, I miss periods 11 and 12 for previous years.

That's why I thought to load all years and periods (sql) and than filter the loaded data in the load sector.

But I do not know how to do that.

An other solution is to use a if-then-else in my query, but I cannot find the correct syntax (SQLBase).

Greetz,

Michel

Oleg_Troyansky
Partner Ambassador/MVP
Partner Ambassador/MVP

Hi Michel,

I think you should look up the corresponding SQL syntax that will allow you formatting the Year-Month combinations using the SQL syntax. For example, something like this:

SQL FORMAT() Function

Think along the lines of formatting your data in a certain way, NOT along the lines of using CASE or IF statements to determine if the month is less than 10 - it will be way to slow...

cheers,

Oleg Troyansky