2013-10-07 48 views
0

嗨我有一個查詢,我想返回一個值。如果我在兩部分中運行查詢並將它們添加在一起,這很好,但是當我嘗試和OR運算符的值大大增加時。使用計數和或給予太高的值

這是第一個查詢:

select count (*) from tablename where DATE_TRE='2013-10-06' and SECTOR= '1' 

這將返回3867

這裏是第二:

select count (*) from tablename where DATE_TRE='2013-10-06' and SECTOR= '01' 

這將返回9

當我把它用或執行命令像這樣

select count (*) from tablename where DATE_TRE='2013-10-06' and SECTOR= '1' OR SECTOR = '01' 

我得到4066的價值,任何人任何想法即時通訊希望的3876

+0

作爲第一個答案指出'和'比'結合具有更高的優先級或'你上次'WHERE'因此相當於'(DATE_TRE ='2013年10月6日'和SECTOR ='1')OR SECTOR ='01'' – DrCopyPaste

回答

2

我想它,因爲它計算像這樣

select count (*) 
from tablename 
where (DATE_TRE='2013-10-06' and SECTOR= '1') OR SECTOR = '01' 

當你正在尋找這個(試試這個)

select count (*) 
from tablename 
where DATE_TRE='2013-10-06' and (SECTOR= '1' OR SECTOR = '01') 
+0

謝謝你的答案,它工作得很好,我會接受它,當我可以。 – rkyyk

2

and圖結合強於or。用括號

select count (*) 
from tablename 
where DATE_TRE = '2013-10-06' 
and (SECTOR= '1' OR SECTOR = '01') 

select count (*) 
from tablename 
where DATE_TRE = '2013-10-06' 
and SECTOR in ('1', '01') 
+0

這個優先級適用於所有dbms ... –

+0

是的,它無處不在。 –

1

將一些大括號放在一邊SECTOR ='1'或扇區= '01':

select count (*) from tablename where DATE_TRE='2013-10-06' 
and (SECTOR= '1' OR SECTOR = '01')