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 即使数据完全相同,有人可以告诉我我错过了什么吗? 在测试使用合并的可能性时,我发现了联合问题. 我的合并代码: 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.... **编辑** 是否有任何方法除了在插入之前尝试修剪,截断或使用触发器修剪: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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- xcode – clang:错误:Mac OSX Mavericks上不支持选项’-s
- 从HBase底层原理解析HBASE列族不能设计太多的原因?
- JFreeChart与AJAX+JSON+ECharts两种处理方式生成热词统计可
- 正则表达式
- 常用正则表达式大全!(例如:匹配中文、匹配html)
- ruby-on-rails-3 – Humanize rails选择帮助器
- objective-c – UIView中的UIImageView,不显示超出界限的图
- ruby-on-rails – Rails集合选择表格不保存HABTM协会
- 如何将int []转换为int [,] – C#
- postgresql – 新安装后postgres的默认超级用户用户名/密码
- c# – 从另一个类和线程的接口回调更新winform
- Oracle SQL ROW_NUMBER()窗口,其条件基于滞后
- 从SQLite中的datetime字段中仅选择时间
- ruby-on-rails – 如何从Rails以root身份运行命令
- ruby-on-rails – 如何在rails上实现文本提取?
- ruby-on-rails – 如何在Rails中的单独域上设置c
- c# – 更改了Parallel.ForEach行为?
- swift3 – FileManager replaceItemAt()导致EXC_
- Cocos2d-x中LuaJavaBridge使用方法
- 如何在unity中使用sqlite,需要哪些库