You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL Where子句中使用Case语句实现动态条件查询

实现方案

你可以直接在WHERE子句中嵌入CASE语句实现条件分支判断,以下两种写法均可使用:

写法1(适配支持布尔返回值的数据库,如MySQL、PostgreSQL)

SELECT *
FROM employees
WHERE CASE
    WHEN country = 'USA' THEN emp_id = v_usa_emp_id
    ELSE emp_id <= v_emp_id
END;

写法2(全数据库兼容,适配Oracle等不支持CASE返回布尔值的数据库)

SELECT *
FROM employees
WHERE CASE
    WHEN country = 'USA' AND emp_id = v_usa_emp_id THEN 1
    WHEN country != 'USA' AND emp_id <= v_emp_id THEN 1
    ELSE 0
END = 1;

逻辑说明

  • 当country取值为USA时,仅返回emp_id等于v_usa_emp_id的员工记录
  • 当country取值不为USA时,返回所有emp_id小于等于v_emp_id的员工记录

内容的提问来源于stack exchange,提问作者Sangathamilan Ravichandran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 02:27:02