考试网 >> IT认证 >> Oracle >> Oracle指导 >> 深入了解Oracle10g中新的多重集运算符

深入了解Oracle10g中新的多重集运算符

发布时间:2006-06-28 09:15     点击:
分页:上一页  1 [2] 3 4  下一页

NUM_TAB_TYP()

多重集运算符UNION 返回的是这两个嵌套表中所有的值,并将这些值结合到一个嵌套表中。如下例:

select num multiset union num_tab_typ(1) num from num_tab;

NUM

--------------------------

NUM_TAB_TYP(1, 2, 3, 4, 5, 1)

NUM_TAB_TYP(1, 3, 5, 1)

NUM_TAB_TYP(2, 4, 6, 1)

大家可以注意到,在嵌入表中的值不一定是唯一的。正如上面的例子,使用 UNION 运算符后,在最后的结果中有两项出现了重复的值。如果你想只保留嵌套表中不重复的值,那么你只需要向下面这个例子中一样,在语句中加上关键字DISTINCT 就可以除去重复的值。



[Page: ]



select num multiset union distinct num_tab_typ(1) num from num_tab;

NUM

--------------------------

NUM_TAB_TYP(1, 2, 3, 4, 5)

NUM_TAB_TYP(1, 3, 5)

NUM_TAB_TYP(2, 4, 6, 1)

对于每个嵌套表的多重集运算符,都只会从每个集合中选择一个值来进行合并或者排除。也就是说在两个嵌套表中如果出现重复的值,那么对于重复的值只有一个会被除去。例如,num_tab_typ(1,1,2,3) MULTISET EXCEPT num_tab_typ(1,2,3) 的运行结果将会是num_tab_typ(1).



在 Oracle 10g 中,你可以比较两个嵌套表是否相等。只要这两个表中的元素个数相等并且值也相等,那么这两个嵌套表就是相等的,而与这两个表中元素的顺序无关。

select num from num_tab where num = num_tab_typ(1,3,5);

NUM

--------------------------

NUM_TAB_TYP(1, 3, 5)

select num from num_tab where num = num_tab_typ(1,5,3);

NUM

--------------------------

NUM_TAB_TYP(1, 3, 5)

select num from num_tab where num = num_tab_typ(1,1,3,5);
分页:上一页  1 [2] 3 4  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有