【发布时间】:2015-04-24 10:49:56
【问题描述】:
我正在尝试查询表。假设有 3 列,颜色、汽车品牌和汽车型号。
我想排除所有蓝色和绿色的汽车,不包括本田思域。这是我在下面的 where 语句:
color not in ("blue", "green")
and (carBrand not = "Honda" and carModel not = "Civic").
我尝试使用上述语句,它实际上排除了所有本田、所有思域,并排除了任何蓝色或绿色的颜色。我决定将查询分成两部分并按以下顺序运行它们:
-
color not in ("blue","green")然后从下面的列表中运行:
-
carBrand not ="Honda" and carModel not = "Civic"
我的问题是,我可以用一个查询而不是两个查询来完成上述操作吗?
仅供参考,我喜欢本田思域,只是认为这是一个很好的例子,因为很多人都知道那个车型。
提前致谢。
在下面添加了新的 cmets 以方便参考。 我尝试使用下面的代码。代码不包括场景 红色,本田,雅阁。我还添加了数据示例表以供参考。感谢您的帮助。
SELECT Color, CarBrand, CarModel
FROM ColorCarModel
WHERE (
(Color Not In ('green','blue'))
AND (CarBrand Not In 'Honda')
AND (CarModel Not In 'Civic')
);
示例数据:
ID Color CarBrand CarModel
1 Green Honda Civic
2 Blue Honda Civic
3 Red Honda Civic
4 Green Ford Civic
5 Blue Ford Taurus
6 Red Ford Taurus
7 Red Honda Accord
8 Red Ford Explorer
【问题讨论】:
-
您的意思是应该排除所有 Hondas 和所有 Civics,还是只排除那些有 Honda 而不是 Civic,或 Civic 而不是 Honda 的记录?