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

Oracle SQL查询:判断商品是否存在红色选项(返回Y/N)

Oracle SQL查询:判断商品是否存在红色选项

有两张表Items和Options,需要编写Oracle SQL语句提取所有商品,并验证每个商品在Options表中是否存在红色选项,结果以Y(是)或N(否)返回。

表结构

Items表

idname
1Table
2Chair
3Box
4Fridge
5Window

Options表

iditemcolor
1TableGreen
2TableBlue
3ChairBlack
4ChairRed
5BoxYellow
6FridgeWhite
7FridgePurple
8WindowGray
9WindowRed

预期查询结果

itemis red
TableN
ChairY
BoxN
FridgeN
WindowY

解决方案

方法1:使用EXISTS子查询

该方法通过子查询判断当前商品是否存在红色选项,逻辑直观,存在性判断效率较高:

SELECT 
    name AS item,
    CASE 
        WHEN EXISTS (
            SELECT 1 
            FROM Options o 
            WHERE o.item = i.name 
            AND o.color = 'Red'
        ) THEN 'Y'
        ELSE 'N'
    END AS "is red"
FROM Items i;

方法2:使用LEFT JOIN + CASE表达式

通过左关联红色选项记录,再通过CASE表达式判断是否存在匹配:

SELECT 
    i.name AS item,
    CASE 
        WHEN o.item IS NOT NULL THEN 'Y'
        ELSE 'N'
    END AS "is red"
FROM Items i
LEFT JOIN Options o 
    ON i.name = o.item 
    AND o.color = 'Red'
GROUP BY i.name;

内容的提问来源于stack exchange,提问作者Inigo CA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 16:53:13