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

基于单列的Oracle查询需求:根据ENABLED状态判断ITEM状态

需求与解决方案

原始数据

ITEM LOC ENABLED
100  A1   Y
100  A2   Y
100  A3   N

目标输出

ITEM     STATUS 
100     INACTIVE

判定规则

  • 只要某商品(ITEM)对应的任意一个仓库(LOC)的启用状态(ENABLED)为N,则该商品的整体状态(STATUS)为INACTIVE
  • 只有当某商品对应的所有仓库启用状态均为Y时,整体状态才为ACTIVE

SQL实现方案

方案一:使用EXISTS子查询

SELECT DISTINCT
    ITEM,
    CASE
        WHEN EXISTS (
            SELECT 1
            FROM your_table AS t2
            WHERE t2.ITEM = t1.ITEM
              AND t2.ENABLED = 'N'
        ) THEN 'INACTIVE'
        ELSE 'ACTIVE'
    END AS STATUS
FROM your_table AS t1;

方案二:使用聚合函数

利用字符排序特性(N的ASCII码小于Y),通过MIN()函数快速判断是否存在N:

SELECT
    ITEM,
    CASE MIN(ENABLED)
        WHEN 'N' THEN 'INACTIVE'
        ELSE 'ACTIVE'
    END AS STATUS
FROM your_table
GROUP BY ITEM;

内容的提问来源于stack exchange,提问作者Imran Hemani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:03:37