1
我需要查詢表一中的過濾條件的三列:如何解決混合AND和OR條件的查詢?
select *
from table a
where a.order = car
and a.color !=red
or a.automatic !=auto
這只是檢查第一條件,並忽略第二個。
我周圍:(
我需要查詢表一中的過濾條件的三列:如何解決混合AND和OR條件的查詢?
select *
from table a
where a.order = car
and a.color !=red
or a.automatic !=auto
這只是檢查第一條件,並忽略第二個。
我周圍:(
它不是從你的問題清楚,但所有你可能需要的是撫慰着你OR條件
鑑於這種下表和行
括號只是不能讓我的頭CREATE TABLE table_a
(
id int primary key,
a_order varchar2(20),
color varchar2(40),
automatic varchar2(10)
)
/
INSERT INTO table_a VALUES (1,'car','red','auto') /
INSERT INTO table_a VALUES (2,'car','red','manual') /
INSERT INTO table_a VALUES (3,'car','blue','auto') /
INSERT INTO table_a VALUES (4,'car','blue','manual')/
INSERT INTO table_a VALUES (5,'truck','red','auto') /
INSERT INTO table_a VALUES (6,'truck','red','manual')/
INSERT INTO table_a VALUES (7,'truck','blue','auto')/
INSERT INTO table_a VALUES (8,'truck','blue','manual')/
這個SELECT語句將返回記錄2,3和4,因爲它們都是汽車的,可以是藍色或手動
SELECT *
FROM table_a a
WHERE a.a_order = 'car'
AND (a.color != 'red'
OR a.automatic != 'auto')
另一種選擇是做使用De Morgan's law下面的「析取的否定是否定的結合」。
SELECT *
FROM table_a a
WHERE a.a_order = 'car'
AND NOT (a.color = 'red'
AND a.automatic = 'auto')
的優先級和高於OR邏輯運算符。您可以在括號內使用OR條件。
SELECT *
FROM table_a a
WHERE a.a_order = 'car'
AND NOT (a.color = 'red'
AND a.automatic = 'auto')
不知何故它不工作,我試過,但興田查詢只是驗證1!紅色和 – sandy
您可以創建一個演示它 –
THX應在交通運輸部的條件,但不知道工作,爲什麼它是一個SQL小提琴作品關閉不在這裏工作。我剛剛在那裏創建了一個子查詢,然後開始工作 – sandy