SQL子语句中既有or又有and,筛选逻辑是什么?
例句:
统计出000或LCT销售渠道下,单笔份额大于20万的笔数?
正确的写法如下:
select count(*) from tstaticshares t where (t.c_agencyno='000' or t.c_agencyno='LCT') and t.f_realshares>200000;
注:如果不加圆括号,And在求值过程中优先级更高,操作符会被错误地组合。会查询出LCT渠道下大于20万的笔数,加上000渠道的所有笔数。
圆括号比AND或OR操作符更高的求值顺序。