小编Mar*_*ain的帖子

Oracle SQL Union/Merge with Duplicates问题

希望有人可以帮助我.

所以假设我有一个名为"TEMP_TABLE"的临时表

 EMP_ID     number
 EMP_FNAME  varchar2()
 EMP_LNAME  varchar2()
Run Code Online (Sandbox Code Playgroud)

"TEMP_TABLE"中的记录

1, Some, Guy
2, Some, Girl
3, Some, Animal
Run Code Online (Sandbox Code Playgroud)

通过一些SQL魔术,我不打算深入研究,计算这些值并将其放入TEMP_TABLE中,select * from TEMP_TABLE即函数返回的a 的多重集合

让我们说功能是 FUNC_THAT_RETURNS_TABLE

好的,如果我说的话 Select * from table("FUNC_THAT_RETURNS_TABLE");

我回来了:

  1, Some, Guy
  2, Some, Girl
  3, Some, Animal
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.

所以现在我创建另一个名为的表 "NEWLY_CREATED_TABLE"

说:

 Create Table "NEWLY_CREATED_TABLE" AS
 (Select * FROM table("FUNC_THAT_RETURNS_TABLE")); 
Run Code Online (Sandbox Code Playgroud)

请注意,该表是通过查询函数创建的

所以这三个记录现在应该在NEWLY_CREATED_TABLE内

问题是,如果我说:

Select * FROM NEWLY_CREATED_TABLE
Union
SELECT * FROM table("FUNC_THAT_RETURNS_TABLE");
Run Code Online (Sandbox Code Playgroud)

结果集是:

 1, Some, Guy
 1, Some, Guy
 2, Some, Girl
 2, Some, Girl
 3, …
Run Code Online (Sandbox Code Playgroud)

oracle plsql user-defined-functions oracle11g

5
推荐指数
0
解决办法
181
查看次数

标签 统计

oracle ×1

oracle11g ×1

plsql ×1

user-defined-functions ×1