1

有没有办法执行 2 个集合的并集,其中两个集合都是由 2 个不同的执行块命令输出的?

集合结构相同,但每个都包含不同的参数,因此我无法轻松地将两者合并到一个执行块命令中。

例如

EXECUTE BLOCK RETURNS -- set 1

AS DECLARE VARIABLE....my sql 1

BEGIN
FOR
..... my sql 1
DO
BEGIN
FOR
..... my sql 1 
DO BEGIN
SUSPEND;

END
END
END      UNION

EXECUTE BLOCK RETURNS -- set 2

AS DECLARE VARIABLE....my sql 2

BEGIN
FOR
..... my sql 2
DO
BEGIN
FOR
..... my sql 2 
DO BEGIN
SUSPEND;

END
END
END 

4

1 回答 1

1

EXCUTE BLOCK不能用于UNION. 只能SELECT参加一个UNION。如果要合并两个 PSQL 块的结果,则需要将它们创建为可选择的存储过程,而不是临时EXECUTE BLOCK语句。使用两个可选的存储过程,您可以应用UNION

select * from procedure1
union
select * from procedure2

或者,如果您真的需要使用EXECUTE BLOCK,那么您需要创建一个EXECUTE BLOCK创建完整输出的单曲。不过,我看不出是什么阻止了您创建单个执行块:如果参数不同,那么您只需要为其中一个添加单独的参数,或者 - 如果是关于输出参数 - 重命名事物以使其可供两者使用。

于 2021-02-17T18:00:57.743 回答