这个问题让我想到:在划_NUMBER() on (按B划分,A顺序按C划分)不对(A,B,C)使用索引中,发问者陈述了两个函数给出了相同的结果集,但是它们没有相同的行,但它们总是处于不同的(和一致的)顺序中。
结果集的顺序是结果集的一部分吗?维基百科暗示不可能(但并不能很好地确定答案,也不代表权威):
https://en.wikipedia.org/wiki/Result_设置
是
Sector Name
A Alpha
B Beta相同的结果集
Sector Name
B Beta
A Alpha我个人只使用SQL Server,答案会因平台而改变吗?答案是否只是意见的问题?(如果是的话,请只回答事实,或至少给出专业团体的共识-请不要给出你的个人意见)
发布于 2016-08-05 07:54:14
可能是ANSI 92的定义
http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt
给出答案。第3.1节定义似乎区分了结果集的概念和结果序列。当我用前一句写这个问题时,我并没有意识到这种区别。
( v)序列:一个有序的对象集合,这些对象不一定是不同的。集合:由不同的对象组成的无序集合。集合可能是空的。
发布于 2016-08-04 16:56:17
Ansi sql不考虑对结果集的一部分排序-因此这2是相同的。结果集确实是一个集合。
顺便说一句,‘大玩家’(甲骨文,微软.)密切遵循ansi sql,如果他们认为它们是相同的,那么标准也是如此.(在大多数事情上)
发布于 2018-11-15 12:01:29
术语“结果集”碳化硅没有出现在1992年的SQL标准中。它通常用于表示select语句的结果。它是表中的一个部分有序的行序列:
20.2 Format < direct语句:多行> 5)如果指定了< order by子句>,则结果的行顺序由< order by子句>有效地确定如下:
来自2003年SQL标准:
3.1.6.30结果集:由<游标规范>指定的一系列行,通过打开游标而产生,并按游标进行排列,并且具有灵敏度、滚动性、可保持性和可返回性等操作属性。
3.1.6.32返回结果集:在执行SQL调用的过程期间创建的结果集,在执行结束时不销毁结果集。这样的结果集可以通过使用游标而不是使其存在的游标(接收到的游标)来访问。
14.3 Format <游标规范> ::= <查询表达式> < order by子句>
22.2 Function指定一条语句,用于从指定的table. Format <直接选择语句中检索多行:多行> ::= <游标规范>堆栈returned语法Rules 2) <游标规范>不应包含< updatability子句>. General Rules 1) (假设Q是<游标规范>. 2)的结果: a)如果Q为空,则会引发一个完成条件:否则,Q不为空,并返回Q。返回Q的方法是实现定义的。
(显然,SELECT语句的结果是有序的,因为它的ORDER是这样做的。)
桌子乱七八糟。但是结果集碳化硅不是一个表。
https://dba.stackexchange.com/questions/145887
复制相似问题