在 SQL 中,WHERE 子句用于过滤查询结果,但是 WHERE 子句中不支持 IF 子句。如果需要根据条件过滤查询结果,可以使用 CASE 表达式或逻辑运算符。
例如,假设有一个名为 orders
的表,其中包含订单信息,包括订单状态和订单金额。如果要查询金额大于 100 的已完成订单,可以使用以下查询语句:
SELECT * FROM orders WHERE order_status = 'completed' AND order_amount > 100;
如果要根据订单状态选择性地应用过滤条件,可以使用 CASE 表达式:
SELECT * FROM orders WHERE
CASE
WHEN order_status = 'completed' THEN order_amount > 100
WHEN order_status = 'pending' THEN order_amount > 50
ELSE order_amount > 20
END;
以上查询语句将根据订单状态选择性地应用过滤条件。如果订单状态为已完成,则只返回订单金额大于 100 的订单;如果订单状态为待处理,则只返回订单金额大于 50 的订单;否则,只返回订单金额大于 20 的订单。
领取专属 10元无门槛券
手把手带您无忧上云