2009-08-18 18 views
63

¿Es compatible sqlite con la función sql "if" en la instrucción select?¿Es compatible sqlite con cualquier tipo de instrucción IF (condición) en un select

por ejemplo

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

que volvería a si la longitud era de más de 4 caracteres de largo. de lo contrario, devolvería '' como b

Si admite una condición en la selección, ¿cuál es la sintaxis que debería estar usando?

He comprobado http://sqlite.org/lang_corefunc.html pero no puedo verlo.

Respuesta

96

Consulte la expresión case.

Una expresión CASE cumple una función similar a IF-THEN-ELSE en otros lenguajes de programación.

Para su ejemplo

select case when length(a) > 4 then a else '' end as b 
from foo 
+0

Esto lo que necesito. –

14

Puede utilizar case para ello:

select case when length(a)>4 then a else ' ' end from foo; 
+0

Impar; el enlace no funciona para iceweasel. Causará un Error de Documento No Encontrado (/lang_5Fexpr.html). La dirección en la barra de direcciones será la correcta (.../lang_expr.html). No estoy seguro de por qué es eso. Aunque la dirección es correcta, una actualización no funcionará; tiene que presionar enter en la barra de dirección para obtener la página. A – Inshallah

+0

markdown no le gustan los guiones bajos, supongo. He cambiado el enlace para usar el redirector snurl –

+0

y no deberías usar un redirector [así que ahora la URL directa está ahí – Mark

Cuestiones relacionadas