Без использования пользовательских функций возможно ли в SQLite сделать следующее.У меня есть две таблицы, которые связаны через общие номера идентификаторов.Во второй таблице есть две переменные.То, что я хотел бы сделать, это иметь возможность возвращать список результатов, состоящий из: идентификатора строки и NULL, если все экземпляры этих двух переменных (и их может быть больше двух) равны NULL, 1, если все они равны 0и 2, если один или несколько равен 1.
То, что у меня сейчас есть, выглядит следующим образом:
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
Итак, для этого требуется пошагово просмотреть каждый результат следующим образом (грубый псевдокод Python):
if row['num_yes'] > 0:
out[aid] = 2
elif row['num_null'] == row['num']:
out[aid] = 'NULL'
else:
out[aid] = 1
Есть ли более простой способ?Спасибо!