Oracle SQL Case语句子查询返回多行错误

ndh0cuux  于 2023-03-22  发布在  Oracle
关注(0)|答案(1)|浏览(127)

我有一个简单的case语句,我试图根据用户角色获取一个值列表:

select distinct
case
    when user_email in (select users from my_table_1 where user_type = 'A')
    then (select distinct type_products from my_total_table where products = 'A')
else null
end
from my_total_table

这是抛出我一个单一的子查询返回多个行错误。

My_total_table structure:
type_products     Name
A                 Something1
A                 Something2
A                 Something3
B                 ProductB1
B                 ProductB2

有人知道如何解决这个问题吗?期望的结果将是:如果user在my_table_1上,并且人员是类型A,那么我想调用my_total_table中属于A类别的所有产品,依此类推。
谢谢

9gm1akwq

9gm1akwq1#

样本数据(表格和预期结果)将有所帮助;看看是否有一个(或两个?)帮助:

select distinct type_products
from my_total_table
where products = 'A'
  and user_email in (select users 
                     from my_table_1
                     where user_type = 'A'
                    );
                    
select distinct a.type_products
from my_total_table a join my_table_1 b on a.user_email = b.users
where b.user_type = 'A'
  and a.products = 'A';

相关问题