将查询从MySql转换为SQLite

时间:2012-09-27 08:14:21

标签: sqlite

请帮助将以下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;

2 个答案:

答案 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