gpt4 book ai didi

sql - order by in view是否保证select的顺序?

转载 作者:行者123 更新时间:2023-11-29 11:14:10 25 4
gpt4 key购买 nike

我认为只有使用特定顺序才有意义。我想做的是在 View 中包含 ORDER BY 子句,以便该 View 上的所有 SELECT 都可以省略它。但是,我担心排序不一定会转移到 SELECT,因为它没有指定顺序。

是否存在 View 指定的排序不会反射(reflect)在对该 View 的选择结果中的情况( View 中的 order by 子句除外)?

最佳答案

在没有显式 ORDER BY 子句的任何查询中,您不能指望行的顺序。如果您查询一个有序 View ,但没有包含 ORDER BY 子句,如果它们的顺序正确,您会感到惊喜,并且不要期望它再次发生。

这是因为查询优化器可以根据查询、表统计信息、行数、索引等以不同方式自由访问行。如果它知道您的查询没有 ORDER BY 子句,它可以随意忽略行顺序以便(咳嗽)更快地返回行。

有点跑题了。 . .

即使是众所周知的排序规则,排序顺序也不一定跨平台相同。我知道在 Mac OS X 上对 UTF-8 进行排序特别奇怪。 (PostgreSQL 开发人员称它为 broken。)PostgreSQL 依赖于 strcoll(),据我所知,它依赖于操作系统语言环境。

我不清楚 PostgreSQL 9.1 将如何处理这个问题。在 9.1 中,you can have multiple indexes, each with a different collation .未指定排序规则的 ORDER BY 通常会使用底层基表列的排序规则,但优化器将如何处理指定排序规则与基表中未索引列不同的排序规则的索引表?

关于sql - order by in view是否保证select的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7282826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com