2012-09-27 99 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. –