*注意: IMO,这不是重复的*有多个问题显示了相同的示例查询语句,但这些问题是关于选择随机行的。它们没有具体解释order by子句如何允许使用Select part中没有的列的语法,尽管它们解释了随机生成是如何工作的。如果上面的查询在order by列表中使用像tan(45)这样的函数,它将不起作用。那么,是什么决定了,a) ORDER by子句中允许哪些函数?b)以及为什么一些函数被添加到后台的选择列表中,而一些函数没有被添加到后台。
SQL server如何允许按newid()、rand()函数排序,即使该列不在select列表中?注意:我的问题不是关于如何生成随机数。
从mytable中选择top 1* order by newid()
SQL server规则明确规定:
ORDER BY子句中引用的列名必须对应于select列表中的列,或者对应于FROM子句中指定的表中定义的列,并且不能有任何歧义。
如果它们是免责条款,是否有具体的规则,以便我们知道如何在其他场景中进一步使用它们?
https://stackoverflow.com/questions/52864537
复制相似问题