Senza l'utilizzo di funzioni personalizzate, è possibile eseguire in SQLite quanto segue. Ho due tabelle, che sono collegate tramite numeri di identificazione comuni. Nella seconda tabella ci sono due variabili. Quello che mi piacerebbe fare è essere in grado di restituire un elenco di risultati, composto da: id di riga e NULL se tutte le istanze di queste due variabili (e potrebbero essercene più di due) sono NULL, 1 se sono tutte 0 e 2 se uno o più è 1."if, then, else" in SQLite
quello che ho in questo momento è la seguente:
SELECT
a.aid,
(SELECT count(*) from W3S19 b WHERE a.aid=b.aid) as num,
(SELECT count(*) FROM W3S19 c WHERE a.aid=c.aid AND H110 IS NULL AND H112 IS NULL) as num_null,
(SELECT count(*) FROM W3S19 d WHERE a.aid=d.aid AND (H110=1 or H112=1)) AS num_yes
FROM W3 a
Così che cosa questo richiede è fare un passo attraverso ogni risultato come segue (approssimativa Python pseudocodice):
if row['num_yes'] > 0:
out[aid] = 2
elif row['num_null'] == row['num']:
out[aid] = 'NULL'
else:
out[aid] = 1
C'è un modo più semplice? Grazie!
Eccellente, grazie per questo! –