SMsoft – informatica e dintorni

varie su OSX, GNU/Linux e l'Open Source

Simulare la clausola SQL IF su SQLite

Se siete abituati ad usare MySQL, sicuramente vi sarà capitato di utilizzare la clausola IF che permette di “popolare” un campo calcolato con un valore che varia in base ad un altro campo. In SQLite purtroppo questa clausola non esiste, ma c’è qualcosa di alternativo, ovvero CASE.
Prendiamo in considerazione una query MySQL che popola il campo calcolato b uguale al valore del campo a se la sua lunghezza è maggiore di 4, altrimenti lo pone vuoto:

 sql |  copy code |? 
1
SELECT IF( LENGHT( a ) > 4 , a , '') AS b FROM table

l’omonima query in SQLite sarà:
 sql |  copy code |? 
1
SELECT CASE WHEN LENGTH(a) > 4 THEN a ELSE '' END AS b FROM table

enjoy

Page optimized by WP Minify WordPress Plugin