Sql 如何在refcursor resultset中组合来自另一个查询的结果?
下面的查询将检索多个col\u grp\u idSql 如何在refcursor resultset中组合来自另一个查询的结果?,sql,oracle,plsql,oracle11g,plsqldeveloper,Sql,Oracle,Plsql,Oracle11g,Plsqldeveloper,下面的查询将检索多个col\u grp\u id SELECT col_grp_id FROM co_page_col_grp_user_t WHERE page_id=p_page_id AND security_userid = p_user; p_check是一个用户定义的变量,它应该是字符串“true”或“false” 当值出现在第一个查询中时,它是“false”,否则它应该是“true”。 我需要使用添加了p_检查的refcursor传递所有行 OPEN p
SELECT col_grp_id
FROM co_page_col_grp_user_t
WHERE page_id=p_page_id AND security_userid = p_user;
p_check是一个用户定义的变量,它应该是字符串“true”或“false”
当值出现在第一个查询中时,它是“false”,否则它应该是“true”。
我需要使用添加了p_检查的refcursor传递所有行
OPEN p_out_col_pref FOR
SELECT page_id,col_grp_nm,col_grp_id,p_check
FROM (SELECT p1.page_id, p2.col_grp_nm, p2.col_grp_id, p_check
FROM co_page_t p1,
co_page_col_grp_t p2
WHERE p1.page_id = p2.page_id
AND p1.page_nm = p_rptname
AND p1.appl_cd = p_applcd
AND p1.page_id = p_page_id);
如何执行此查询???您可以在查询中执行此操作(无需使用用户定义的变量),如本简化示例所示:
select p1.*, case when p2.col_grp_id is null then 'true' else 'false' end p_check
from co_page_t p1 left outer join co_page_col_grp_user_t p2
on p1.col_grp_id = p2.col_grp_id
基本上,我在第一次查询中使用了一个左外部联接
,并使用了一个大小写
将空值表示为“false”,将值表示为“true”
或者像这样:
select p1.*, case when
(select count(*) from co_page_col_grp_user_t p2 where p1.col_grp_id = p2.col_grp_id ) = 0 then 'true' else 'false'
end p_check
from co_page_t p1;
在这里,我数了数(不需要特别的数字)
这个问题与您之前的问题非常相似,我们如何进一步帮助您?我修改了这个问题。它不是关于布尔的..我只需要字符串.它是关于查询的logic@Satheesh:那么它是字符串,那么为什么你要尝试使用ref_cursor?我尝试使用集合?refu cursor我需要传递给前端开发人员。我问的是,当值出现在第一个查询else p_check=“true”中时,如何设置p_check=“false”