2009-08-18 13 views
63

sqlite supporta la funzione sql "if" nell'istruzione select?sqlite supporta qualsiasi tipo di istruzione IF (condizione) in una selezione

per esempio

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

che restituisce un se la lunghezza era lunga oltre 4 caratteri. altrimenti sarebbe restituito '' come b

Se supporta una condizione nella selezione, qual è la sintassi dovrebbe essere utilizzata?

Ho controllato http://sqlite.org/lang_corefunc.html ma non riesco a vederlo.

risposta

96

Vedere l'espressione case.

Un'espressione CASE svolge un ruolo simile a IF-THEN-ELSE in altri linguaggi di programmazione.

Per esempio

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

Questo quello che mi serve. –

14

È possibile utilizzare case per questo:

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

Dispari; il collegamento non funziona per iceweasel. Causerà un errore non trovato nel documento (/lang_5Fexpr.html). L'indirizzo nella barra degli indirizzi sarà quello corretto (.../lang_expr.html). Non sono sicuro del perché. Sebbene l'indirizzo sia corretto, un aggiornamento non funzionerà; devi premere invio nella barra degli indirizzi per ottenere la pagina. Il markdown – Inshallah

+0

non mi piace per i underscore. Ho modificato il collegamento per utilizzare il redirector snurl –

+0

e non dovresti utilizzare un redirector [quindi l'URL diretto ora è lì – Mark