在 SQL 中,可以使用 CASE 表达式来在 WHERE 子句中添加 IF 判断逻辑。CASE 表达式允许您基于条件值来生成不同的结果。
例如,假设您有一个名为 "students" 的表,其中包含 "name","age" 和 "grade" 列。您想筛选出年龄在 18 到 25 岁之间的学生,但只保留他们的分数大于 80 分的记录。在这种情况下,您可以使用以下 SQL 语句:
SELECT name, age, grade
FROM students
WHERE age BETWEEN 18 AND 25
AND grade > CASE
WHEN age <= 20 THEN 80
ELSE 90
END;
在这个例子中,我们使用了 BETWEEN 操作符来匹配年龄在 18 到 25 岁之间的学生,并使用 CASE 表达式来根据学生的年龄决定所需的分数门槛。当学生的年龄小于或等于 20 岁时,门槛为 80 分,否则为 90 分。只有满足这些条件的学生才会被检索出来。
需要注意的是,CASE 表达式必须返回单个值。在上面的例子中,当学生的年龄小于或等于 20 岁时,CASE 表达式返回 80,否则返回 90。然后,将此值与每个记录的 "grade" 列进行比较,以确定是否符合 WHERE 子句的条件。
希望这能帮助您解决您的问题。如果您有任何其他问题,请随时提出。