Does sqlite support any kind of IF(condition) statement in a select
SqlSqliteSql Problem Overview
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.
Sql Solutions
Solution 1 - Sql
See the case expression.
> A CASE expression serves a role similar to IF-THEN-ELSE in other programming languages.
For your example
select case when length(a) > 4 then a else '' end as b
from foo
Solution 2 - Sql
You can use case for that:
select case when length(a)>4 then a else ' ' end from foo;
Solution 3 - Sql
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".