oracle sql中满足条件时如何返回多个值

问题描述 投票:0回答:1

如果 ex 满足条件,我们如何返回多个值

table= ITEMS

        ITEM  |.     TYPE
------------------------------------------
apple,         | fruit
onion,        | vegetable
mango          |fruit
apple          |edible         |
mango          | edible
onion         |edible

select case when item IN ('apple','mango') then ('fruit')
when item IN ('onion') then ('vegetable')
when team In ('apple','mango','onion') then ('edable')
end 
from ITEAMS
where item='apple'

输出

水果 可以吃的

苹果是一种水果,可以食用 请建议我如何在 oracle sql 中实现这一点 预先感谢

oracle oracle11g oracle-sqldeveloper oracle10g
1个回答
0
投票

基于此示例:

create table items (item varchar2(10), type varchar2(10));

insert into items values ('apple','fruit');
insert into items values ('onion','vegetable');
insert into items values ('mango','fruit');
insert into items values ('apple','edible');
insert into items values ('mango','edible');
insert into items values ('onion','edible');

您可以通过此查询获得您正在寻找的输出:

select item, listagg(type,' ') as attributes
from items
group by item;

但是您可能会考虑重新设计表,这样就不会在同一列中存储不同类型的属性(食用属性和水果属性)。

© www.soinside.com 2019 - 2024. All rights reserved.