這個查詢:爲什麼OR語句給我我不想要的記錄?
select dept, job
from organizations
where (dept = 'Marketing' and job <> 'Sam Wise')
or (dept = 'Marketing' and job <> 'The Precious')
一直給有工作顯示「神偷」時,它不應該記錄。但如果我這樣寫查詢:
select dept, job
from organizations
where (dept = 'Marketing' and job <> 'Sam Wise')
and (dept = 'Marketing' and job <> 'The Precious')
然後我得到正確的記錄。 「Sam Wise」或「The Precious」沒有工作。所以我想知道,如果我對T-SQL中的AND和OR的理解是困惑的,或者對我的sql服務器來說是不可思議的。
總之,爲什麼不是第一個查詢刪除所有具有'Sam Wise'或'The Precious'作爲工作的記錄,但第二個查詢是?
你知道布爾OR操作符是如何工作的嗎? – Oded 2012-02-07 21:11:45
我認爲你需要(dept ='Marketing)和(job <>'Sam Wise')和(job <>'Precious') – 2012-02-07 21:14:00