2.4 — 多条件筛选
你将学到什么
- 如何用
AND
、OR
和括号组合筛选条件 - 与 Excel 高级筛选的对比
条件组合
Excel:
用“自定义筛选”显示产品为“苹果”且金额大于 100 的行。
SQL:
sql
SELECT * FROM sales
WHERE Product = 'Apples' AND Amount > 100;
AND
表示两个条件都要满足。
使用 OR
显示“苹果”或“橙子”的销售:
sql
SELECT * FROM sales
WHERE Product = 'Apples' OR Product = 'Oranges';
OR
表示任一条件满足即可。
用括号分组
显示“苹果”且金额大于 100,或所有“橙子”销售:
sql
SELECT * FROM sales
WHERE (Product = 'Apples' AND Amount > 100)
OR Product = 'Oranges';
- 括号控制逻辑顺序,就像 Excel 公式。
关于 NULL 值的特别说明
NULL
表示缺失或未知数据。比较
= NULL
或<> NULL
无效。用
IS NULL
或IS NOT NULL
:sqlWHERE Amount IS NULL
常见错误
用
=
或<>
比较 NULL:sqlWHERE Amount = NULL -- 错误! WHERE Amount <> NULL -- 错误!
检查 NULL 一定要用
IS NULL
或IS NOT NULL
。复杂条件忘记加括号:
sqlWHERE Product = 'Apples' AND Amount > 100 OR Product = 'Oranges'
这可能不会按预期筛选。应加括号:
sqlWHERE (Product = 'Apples' AND Amount > 100) OR Product = 'Oranges'
文本值忘记加引号:
sqlWHERE Product = Apples -- 错误! WHERE Product = 'Apples' -- 正确
大小写敏感:
有些数据库区分'apples'
和'Apples'
。如需不区分大小写可用LOWER()
:sqlWHERE LOWER(Product) = 'apples'
关键点
- 用
AND
、OR
和括号组合条件实现高级筛选。 - 检查缺失数据一定用
IS NULL
。
下一步
下一个模块你将学习如何变换和排序数据——就像在 Excel 里用公式和排序功能。