当前位置: 首页 > 面试题库 >

子查询中是否允许order by子句

聂奇
2023-03-14
问题内容

是否有任何原因为什么或为什么不应该在子查询中执行“排序依据”?


问题答案:

是:不应这样做,因为从概念上讲这没有意义。

子查询将在某些外部查询中使用(否则它将毫无意义),并且该外部查询无论如何都必须进行排序,因此对子查询进行排序没有任何意义。

这是因为除非使用显式ORDER,否则SQL中的查询结果将没有特定的顺序。因此,即使您在子查询中使用了ORDER,也无法保证这会影响外部查询的结果顺序。所以这是没有意义的。

当然,由于它的实现,它可能会在某些特定的RDBMS中有所作为,但这将是特定于实现的,而不是您应依赖的。

编辑: 当然,如果在子查询中使用TOP或LIMIT, 需要使用ORDER。但这毕竟不是标准的SQL …



 类似资料:
  • 问题内容: 我在MS Access中有如下查询 我已将其放入报告中,现在当尝试查看报告时,它会显示警报“ 子查询中不允许使用多级GROUP BY子句 ” 我没有得到的是查询中什至没有任何GROUP BY子句,所以为什么返回此错误? 问题答案: 来自Allen Browne出色的Access技巧网站:生存子查询 错误:“不允许多级分组” 您花了半个小时用子查询来构建查询,并验证它是否可以正常工作。您

  • 问题内容: 我运行以下查询: 我收到以下错误: 消息512,级别16,状态1,行2子查询返回的值大于1。当子查询遵循=,!=,<,<=,>,> =或将子查询用作表达式时,这是不允许的。 有任何想法吗? 问题答案: 试试这个: 这将返回除列之外相同的多行。查看返回的不同成本值,并找出导致这些不同值的原因。然后询问某人他们想要哪个成本值,然后将条件添加到查询中以选择该成本。

  • 问题内容: 我想知道是否可以在@Query批注中包含子查询(org.springframework.data.jpa.repository.Query;) 我在第一个子查询括号上得到QuerySyntaxException。 这是我的查询 谢谢! 问题答案: 不可以,JPQL查询的select子句中不能包含子查询。 JPQL在WHERE和HAVING子句中支持子查询。它可以(至少)是ANY,SOM

  • 我为Select创建了动态DB2存储过程。我将使用这个泛型查询通过传递参数来执行多个select语句。 下面是我的查询的样子。 当我运行这个的时候

  • 我去研究了关于JPA2.1规范的信息,这就是我发现的: 用于联接的联接条件来自映射的联接列。这意味着JPQL用户通常不必知道每个关系是如何连接的。在某些情况下,需要在连接条件中附加附加条件,通常是在外部连接的情况下。这可以通过ON子句来实现。ON子句在JPA2.1规范中定义,某些JPA提供程序可能支持ON子句。EclipseLink:Hibernate:TopLink-支持ON子句。 需要注意的是

  • 问题内容: 我试图添加一个 检查约束 ,但到目前为止,我只是失败了。解决这个问题的方法是什么: 讯息1046,第15级,州1,第6行 在这种情况下,不允许子查询。仅允许标量表达式。 这是代码: 问题答案: SQL Server当前不支持CHECK CONSTRAINT的子查询 。 您已经发现,尝试规避子查询限制时,涉及UDF的CHECK约束可能会出现问题。 替代性约束执行策略是 触发过程 和 嵌入