2012-09-27 48 views
0

请有助于改变下面MySQL查询的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; 

回答

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 
+0

我会试试它......谢谢你我的朋友 – aziz

1

SQLite没有一个IF功能,但布尔表达式定义为具有值1或0。 所以该特定表达式将是:

SUM(t3.is_main = 'y') AS t3__5 

其他任何东西都是标准SQL。

+0

什么来代替关于0,1 ???我如何处理它 – aziz

+0

在SQLite中,表达式't3.is_main ='y''已经_is_ 0或1. –