2015-04-13 6 views
0

Я пытаюсь выполнить следующий запрос в pgSQL.более одного, где условие в sql-запросе

select count(id) from master 
     where act1=true or act2=true 
     and regn_no>2000; 

Но запрос возвращает все строки, которые удовлетворяют условию 'act1 = true или act2 = true'. Он не проверяет act1 = true или act2 = true. Почему?

SQLFIDDLE: http://sqlfiddle.com/#!9/23b1f/1

ответ

2

потому AND приоритет выше, чем OR то SQL разобрать ваш где положение в

(act1=true) or (act2=true 
     and regn_no>2000); 

вы должны переписать запрос, как следовать

select count(id) from master 
     where (act1=true or act2=true) 
     and regn_no>2000; 
+0

Спасибо за вас. Он работает нормально. –

Смежные вопросы