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

Oracle SQL满足条件时返回多值的实现方案(不可修改表)

在Oracle SQL中获取ITEM对应多个TYPE值的解决方案

场景1:返回多行独立结果

不需要使用CASE语句,直接通过WHERE条件过滤即可。你的表中apple本身就对应两行TYPE数据,直接查询就能得到两个独立结果:

SELECT TYPE
FROM ITEMS
WHERE ITEM = 'apple';

执行结果:

fruit
edible

场景2:返回单行拼接后的结果

如果需要将多个TYPE值合并到同一行(比如用逗号分隔),可以使用Oracle内置的LISTAGG聚合函数,无需创建或修改现有表:

SELECT LISTAGG(TYPE, ', ') WITHIN GROUP (ORDER BY TYPE) AS apple_types
FROM ITEMS
WHERE ITEM = 'apple';

执行结果:

fruit, edible

关于CASE语句的问题

CASE语句是单行内的条件判断逻辑,只能针对当前行返回单个值,无法从多行数据中提取并返回多个结果,这就是你之前只能得到单个值的原因。

内容的提问来源于stack exchange,提问作者Ananya Sarkar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 23:42:08