Skip to content

2.4 — 多条件筛选

你将学到什么

  • 如何用 ANDOR 和括号组合筛选条件
  • 与 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 NULLIS NOT NULL

    sql
    WHERE Amount IS NULL

常见错误

  • =<> 比较 NULL:

    sql
    WHERE Amount = NULL   -- 错误!
    WHERE Amount <> NULL  -- 错误!

    检查 NULL 一定要用 IS NULLIS NOT NULL

  • 复杂条件忘记加括号:

    sql
    WHERE Product = 'Apples' AND Amount > 100 OR Product = 'Oranges'

    这可能不会按预期筛选。应加括号:

    sql
    WHERE (Product = 'Apples' AND Amount > 100) OR Product = 'Oranges'
  • 文本值忘记加引号:

    sql
    WHERE Product = Apples   -- 错误!
    WHERE Product = 'Apples' -- 正确
  • 大小写敏感:
    有些数据库区分 'apples''Apples'。如需不区分大小写可用 LOWER()

    sql
    WHERE LOWER(Product) = 'apples'

关键点

  • ANDOR 和括号组合条件实现高级筛选。
  • 检查缺失数据一定用 IS NULL

下一步

下一个模块你将学习如何变换和排序数据——就像在 Excel 里用公式和排序功能。