大佬教程收集整理的这篇文章主要介绍了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,请注明来意。