繁体   English   中英

如何将两个SQL查询结果合并到一个表中?

[英]How to combine the two SQL query results into one table?

create or replace PROCEDURE SearchResult
(     V_ID IN VARCHAR2
      , V_REFCUR OUT SYS_REFCURSOR
)
IS

BEGIN
  DECLARE CNT INT;

  BEGIN

  SELECT COUNT(*) INTO CNT 
  FROM TABLE1 T1
  INNER JOIN TABLE2 T2 ON T1.CODE = T2.CODE
  WHERE T1.ID = V_ID;

  IF (CNT > 0) THEN
  OPEN V_REFCUR FOR  
  SELECT T1.TYPE
  FROM TABLE T1
  INNER JOIN TABLE2 T2 ON T1.CODE = T2.CODE
  WHERE T1.ID = V_ID AND T1.TYPE IS NOT NULL;


  ELSE 
  OPEN V_REFCUR FOR  
  SELECT 
     T3.NAME||T1.TYPE
     FROM TABLE3 T3
     INNER JOIN TABLE2 T2 ON T2.ID= T3.ID
     INNER JOIN TABLE1 T1 ON T1.CODE = T2.CODE
     AND TI.TYPE IS NOT NULL AND T1.ID = V_ID;

  END IF;
  END;

   BEGIN
   OPEN V_REFCUR FOR
    SELECT
    T1.NAME
    , T1.ADDRESS
    FROM TABLE1 T1
    WHERE T1.ID = V_ID

 END;
END SearchResult

要将单独查询的结果合并到同一张表中,可以使用几个选项:

  • 通过使用UnionUnion all两个查询合并为一个查询,具体取决于您是否要排除重复项
  • 使用临时表将查询拆分为2个单独的Insert语句,然后返回临时表的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM