Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在refcursor resultset中组合来自另一个查询的结果?_Sql_Oracle_Plsql_Oracle11g_Plsqldeveloper - Fatal编程技术网

Sql 如何在refcursor resultset中组合来自另一个查询的结果?

Sql 如何在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

下面的查询将检索多个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_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”