Does sqlite support any kind of IF(condition) statement in a select

Viewed 80381

Does sqlite support the sql function "if" in the select statement?

for example

select if( length( a ) > 4 , a , ' ') as b
from foo

which would return a if the length was over 4 chars long. or else it would return ' ' as b

If it does support a condition in the select what is the syntax is should be using?

I have checked http://sqlite.org/lang_corefunc.html but I can't see it.

3 Answers

Since version 3.32.0 you can use iif(X,Y,Z):

select iif( length( a ) > 4 , a , ' ') as b
from foo

From the codumentation:

The iif(X,Y,Z) function is logically equivalent to and generates the same bytecode as the CASE expression "CASE WHEN X THEN Y ELSE Z END".

Related