Bez korzystania z funkcji niestandardowych jest to możliwe w SQLite, aby wykonać następujące czynności. Mam dwie tabele, które są połączone za pomocą zwykłych numerów identyfikacyjnych. W drugiej tabeli występują dwie zmienne. Co chciałbym zrobić, to być w stanie zwrócić listę wyników, składającą się z: id rzędu i NULL, jeśli wszystkie wystąpienia tych dwóch zmiennych (i może być więcej niż dwa) są równe NULL, 1 jeśli wszystkie są 0 i 2, jeżeli jedna lub więcej to 1."if, then, else" w SQLite
Co mam teraz jest następujący:
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
Więc co to wymaga się, aby przejść przez każdego wyniku w następujący sposób (szorstki Python Pseudokod):
if row['num_yes'] > 0:
out[aid] = 2
elif row['num_null'] == row['num']:
out[aid] = 'NULL'
else:
out[aid] = 1
Czy jest łatwiejszy sposób? Dzięki!
Doskonale, dziękuję za to! –