我正在過濾器搜索,我可以組成一個查詢,但其AND部分沒有返回我正確的值,其返回正確的結果爲GPA,但它沒有給出正確的結果程度檢查因爲它返回所有記錄不適用「BSCS」在這裏過濾器是查詢代碼:SQL查詢返回錯誤的值
SELECT *
FROM education
WHERE gpa >= 2.10
OR gpa =0
AND degree = 'BSCS'
OR degree = NULL
我正在過濾器搜索,我可以組成一個查詢,但其AND部分沒有返回我正確的值,其返回正確的結果爲GPA,但它沒有給出正確的結果程度檢查因爲它返回所有記錄不適用「BSCS」在這裏過濾器是查詢代碼:SQL查詢返回錯誤的值
SELECT *
FROM education
WHERE gpa >= 2.10
OR gpa =0
AND degree = 'BSCS'
OR degree = NULL
它看起來像你需要添加一些括號:
SELECT *
FROM education
WHERE (gpa >= 2.10 OR gpa =0)
AND (degree = 'BSCS' OR degree is NULL)
如果你想在WHERE
擴大條款,那麼你可以使用:
SELECT *
FROM education
WHERE
(
(gpa >= 2.10 OR gpa =0)
AND (degree = 'BSCS' OR degree is NULL)
)
OR
(
(gpa is null or gpa ='')
or (degree is null or degree = '')
)
非常感謝:) – 2013-03-11 18:08:55
我該如何修改我的查詢它的用戶不適用全球通/國家級過濾器和SQL應該返回所有記錄? – 2013-03-11 18:12:52
確定,但請幫助我這個問題以及 – 2013-03-11 18:15:47
試試下面的代碼:
使用和/或條件時,爲了避免混淆始終把括號。 也是最好的方式來檢查,如果一個字段爲空爲WHERE myField IS NULL
SELECT *
FROM education
WHERE (gpa >= 2.10 OR gpa =0)
AND (degree = 'BSCS' OR degree is NULL)
@Junaid阿赫塔爾如果您對解決方案感到滿意,請接受/投票。我的回答並不重複,但有人更新了代碼....哈哈 – 2013-03-11 18:17:41
@Juhana沒得到你的觀點? – 2013-03-11 18:07:47
您的查詢要求gpa> = 2.10或零gpa BSCS學位或沒有學位。所以只要gpa> = 2.10,你的查詢並不關心度數。 – 2013-03-11 18:10:41
我如何修改我的查詢它的用戶不適用GPA或度過濾器和SQL應該返回所有記錄? – 2013-03-11 18:13:39