问题描述
嗨,
我的问题与集合函数集的工作方式有关。我有一个包含重复值的集合 (例如提供的示例),并且我想将该集合中的值的不同列表作为输出。
SET函数正是完成该工作。但是,我不确定是否保留了值的原始顺序。这样,我的意思是当有这样的东西:
'a','b','c','d','b','c','d','b','c'
我总是以
'a','b','c','d'
或者有可能以这样的方式结束
'b','d','a','c'
在文档中并没有真正提到:https://docs.oracle.com/database/121/SQLRF/functions177.htm#SQLRF06308
谢谢
佩德罗
我的问题与集合函数集的工作方式有关。我有一个包含重复值的集合 (例如提供的示例),并且我想将该集合中的值的不同列表作为输出。
SET函数正是完成该工作。但是,我不确定是否保留了值的原始顺序。这样,我的意思是当有这样的东西:
'a','b','c','d','b','c','d','b','c'
我总是以
'a','b','c','d'
或者有可能以这样的方式结束
'b','d','a','c'
在文档中并没有真正提到:https://docs.oracle.com/database/121/SQLRF/functions177.htm#SQLRF06308
谢谢
佩德罗
专家解答
看起来是这样的,例如
但是当然,数以百万计的例子并不能证明反例的不存在。我将询问PL/SQL PM,并提供更多信息。
但是如果它不在文档中。.. 那么一般来说,依靠它是不安全的
SQL> create or replace type varchar2_list is table of varchar2(10);
2 /
Type created.
SQL> select varchar2_list('1','2','3','4','5','6','7','1','2','3','4') from dual;
VARCHAR2_LIST('1','2','3','4','5','6','7','1','2','3','4')
--------------------------------------------------------------------------------------------------
VARCHAR2_LIST('1', '2', '3', '4', '5', '6', '7', '1', '2', '3', '4')
SQL> select set(varchar2_list('1','2','3','4','5','6','7','1','2','3','4')) from dual;
SET(VARCHAR2_LIST('1','2','3','4','5','6','7','1','2','3','4'))
--------------------------------------------------------------------------------------------------
VARCHAR2_LIST('1', '2', '3', '4', '5', '6', '7')
SQL> select set(varchar2_list('4','1','7','3','2','4','7','6','1','9','3')) from dual;
SET(VARCHAR2_LIST('4','1','7','3','2','4','7','6','1','9','3'))
--------------------------------------------------------------------------------------------------
VARCHAR2_LIST('4', '1', '7', '3', '2', '6', '9')
但是当然,数以百万计的例子并不能证明反例的不存在。我将询问PL/SQL PM,并提供更多信息。
但是如果它不在文档中。.. 那么一般来说,依靠它是不安全的
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




