Oracle   发布时间:2022-05-17  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Oracle SQL Union / Merge with Duplicates问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
希望有人可以帮助我.

所以假设我有一个名为“TEMP_table”的临时表

EMP_ID     number
 EMP_Fname  varchar2()
 EMP_Lname  varchar2()

“TEMP_table”中的记录

1,Some,Guy
2,Girl
3,Animal

通过一些sql魔术,我不打算深入研究,这些值被计算并放入TEMP_table,一个函数返回的一个SELEct * FROM tEMP_table的multiset

假设该函数是FUNC_THAT_RETURNS_table

好的,如果我说表中的SELEct *(“FUNC_THAT_RETURNS_table”);

我回来了:

1,Guy
  2,Girl
  3,Animal

到现在为止还挺好.

所以现在我创建另一个名为“NEWLY_CREATED_table”的表

说:

create table "NEWLY_CREATED_table" AS
 (SELEct * FROM table("FUNC_THAT_RETURNS_table"));

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

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

问题是
如果我说:

SELEct * FROM NEWLY_CREATED_table
Union
SELECT * FROM table("FUNC_THAT_RETURNS_table");

结果集是:

1,Guy
 1,Guy
 2,Girl
 2,Girl
 3,Animal
 3,Animal

即使数据完全相同,有人可以告诉我我错过了什么吗?

在测试使用合并的可能性时,我发现了联合问题.
当我尝试将表中的数据与函数中的数据合并时,表中的所有数据都将被替换.这让我认为代码没有正确识别唯一记录.

我的合并代码:

@H_760_9@mergE into Newly_Created_table a using ( SELEct * FROM table(Func_That_Returns_tablE) ) b On (a.EMP_ID = b.EMP_ID) When Matched.... When Not Matched....

**编辑**
9-7-2016 SHOUTOUT TO @ShAnnon Severance其中一个列中有一个空白区域.

是否有任何方法除了在插入之前尝试修剪,截断或使用触发器修剪:NEW值,以确保不会添加尾随空格无明显原因?

解决方法

我找到了解决方案.我跑了,并没有得到任何错误.

create table temp_table
(
 EMP_ID     numbER,EMP_Fname  varchar2(32),EMP_Lname  varchar2(32)
);

INSERT INTO temp_table values (1,'SOME','Guy');
INSERT INTO temp_table values (2,'Girl');
INSERT INTO temp_table values (3,'Animal');

CREATE OR replaCE TYPE three_values_ot AS OBjeCT
   (
 EMP_ID     numbER,EMP_Lname  varchar2(32)
   );


CREATE OR replaCE TYPE three_values_nt
   IS table OF three_values_ot;

CREATE OR replaCE FUNCTION FUNC_THAT_RETURNS_table
   RETURN three_values_nt
IS
   l_return three_values_nt := 
      three_values_nt (three_values_ot (1,'Guy'),three_values_ot (2,'Girl'),three_values_ot (3,'Animal'));
BEGIN
   RETURN l_return;
END;

SELECT * FROM temp_table
UNION
SELECT * FROM table (FUNC_THAT_RETURNS_table ());

上述联合查询的输出是

1   SOME    Guy
2   SOME    Girl
3   SOME    Animal

大佬总结

以上是大佬教程为你收集整理的Oracle SQL Union / Merge with Duplicates问题全部内容,希望文章能够帮你解决Oracle SQL Union / Merge with Duplicates问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: