请帮助将以下MySQL查询更改为SQLite
SELECT
DISTINCT t.arabic_term AS t__1,
SUBSTR(t.definition, 1, 60) AS Definition,
Sum(if(t3.is_main="y", 1 ,0)) AS t3__5
FROM term t
INNER JOIN term_disease t2 ON (t2.disease_id = t.term_id)
INNER JOIN term_disease_symptom t3 ON (t3.disease_id = t2.disease_id)
WHERE (t3.symptom_id in ( 45378 , 45351, 5546 ) AND t2.gender != 1 AND t2.active = 1 )
GROUP BY t3.disease_id
ORDER BY t3__5 desc;
答案 0 :(得分:1)
SQLite没有IF
函数,但布尔表达式定义为值为1或0。
所以特定的表达方式是:
SUM(t3.is_main = 'y') AS t3__5
其他任何东西都是标准SQL。
答案 1 :(得分:1)
下面
Sum(if(t3.is_main="y", 1 ,0)) AS t3__5
应替换为
SUM(CASE t3.is_main WHEN 'y' THEN 1 ELSE 0 END) AS t3__5