小编Ane*_*oic的帖子

T-SQL的"ORDER BY RAND()"和"ORDER BY NEWID()"的官方文档在哪里?

我正在寻找"ORDER BY RAND()"和"ORDER BY NEWID()"的官方T-SQL文档.有许多文章描述它们,因此必须在某处记录它们.

我正在寻找像这样的官方SQL Server文档页面的链接:http: //technet.microsoft.com/en-us/library/ms188385.aspx

澄清:

我正在寻找的是"order_by_expression"的文档,它解释了非负整数常量,返回非负整数的函数和返回任何其他值的函数(如RAND()或NEWID())之间的行为差​​异. ).


答案:

我为我原来的问题缺乏明确性而道歉.与大多数与编程相关的问题一样,问题的解决方案主要是弄清楚您实际上想要回答的问题.

谢谢大家.


答案在本文档中:来自:http://www.wiscorp.com/sql200n.zip

Information technology — Database languages — SQL — Part 2: Foundation (SQL/Foundation)

22.2 <direct select statement: multiple rows> includes a <cursor specification>.
Run Code Online (Sandbox Code Playgroud)

此时我们得到了答案的前半部分:

SELECT语句是一种CURSOR,这意味着可以在每一行上迭代执行操作.虽然我没有在明确说明的文档中找到声明,但我很乐意假设order_by_expression 中的表达式将针对每一行执行.

现在,当您使用RAND()或NEWID()或CEILING(RAND()+ .5)/ 2而不是数字常量或列名称时,会发生什么.
表达式永远不会被视为列号.它将始终是为每行生成的值,它将用作确定行顺序的基础.

但是,为了彻底性,让我们继续完整定义表达式.

14.3 <cursor specification> includes ORDER BY <sort specification list>.

10.10 <sort specification list> defines:

<sort specification> ::= <sort key> [ <ordering specification> ] [ …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server random sql-order-by newid

-2
推荐指数
1
解决办法
306
查看次数

标签 统计

newid ×1

random ×1

sql-order-by ×1

sql-server ×1

t-sql ×1