如何获取在声明变量中获得多于一列的记录,在 where 条件中使用此变量

问题描述

嗨,我正在写一个选择语句,我将 v_folder_id 声明为一个变量,该变量使用 where 条件,当时如果我有超过 1 行得到以下错误 用作表达式的子查询返回的多行

v_folder_id = (select folder_id from public."VOfficeApp_filefolder" vf where vf.company_id = ip_company_id
和 vf.created_by = ip_user_id 和 vf.parent_folder_id = ip_folder_id 并且 vf.status = 'Active' 并且 vf.folder_type 为空);

返回查询 (选择 array_to_json(array_agg(row_to_json(b))) FROM (选择 vf.*,

        (select array_to_json(array_agg(row_to_json(b))) FROM
                (select  vs.* 
                      from public."VOfficeApp_filefolder" vff
                      inner join public."VOfficeApp_filestorage"  vs on vff.folder_id = vs.folder_id
                       where vs.company_id = ip_company_id  
                       and  vs.created_by = ip_user_id
                     and vs.folder_id = v_folder_id
                      and  vs.status = 'Active'
                       )b)as file_attachments
                      
                      
                      from public."VOfficeApp_filefolder" vf
                       where vf.company_id = ip_company_id  
                       and  vf.created_by = ip_user_id
                       and vf.parent_folder_id = ip_folder_id
                       and vf.status = 'Active'
                      and vf.folder_type is null
                       )b);
                      

结束;

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)