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

Oracle如何比较指定id对应的value值并按规则返回对应结果

Oracle实现方案

你可以通过条件聚合或者子查询两种方式实现需求,两种写法均兼容全版本Oracle:

方式1:单表聚合查询(适合小表场景,无需多次查表)

将不同id对应的行值聚合到同一行做对比,一次扫描即可得到结果:

SELECT 
    CASE 
        -- 对比id=3和id=4的value值
        WHEN MAX(CASE WHEN id = 3 THEN value END) = MAX(CASE WHEN id = 4 THEN value END)
        THEN MAX(CASE WHEN id = 1 THEN value END) -- 相等返回id=1的value
        ELSE MAX(CASE WHEN id = 2 THEN value END) -- 不等返回id=2的value
    END AS result
FROM 你的实际表名;

方式2:子查询匹配(适合id有索引的大表场景,走索引查询效率更高)

直接通过主键/索引匹配对应id的value做对比:

SELECT 
    CASE 
        WHEN (SELECT value FROM 你的实际表名 WHERE id = 3) = (SELECT value FROM 你的实际表名 WHERE id = 4)
        THEN (SELECT value FROM 你的实际表名 WHERE id = 1)
        ELSE (SELECT value FROM 你的实际表名 WHERE id = 2)
    END AS result
FROM DUAL;

你提供的示例数据运行两种语句都会返回yes,符合预期。


内容的提问来源于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.08 20:36:02