gpt4 book ai didi

sql - View 的顺序是否有保证?

转载 作者:行者123 更新时间:2023-11-29 11:34:46 27 4
gpt4 key购买 nike

PostgreSQL 允许在 View 中使用ORDER BY,所以例如我可以这样写一个 View :

CREATE VIEW people_overview AS
SELECT
id
, name1
, name2
FROM person
ORDER BY
name2
, name1

假设我有一个应用程序,我现在像这样使用这个 View :

SELECT * FROM people_overview

然后该应用会读取所有数据并以某种方式(例如使用网格)将其显示给用户。

是否保证在这种情况下,在将行返回给应用程序时保持 View 中指定的顺序?

或者我最好将 ORDER BY 编码到应用程序中?

最佳答案

根据评论;定义没有 ORDER BY 的 View (除非某些子查询需要它用于 TOP N ROWS 类型的目的)并让 View 的最终用户确定他们想要的排序顺序(因为它可以保证是他们想要的并且风险较小数据将被排序两次,一次是不必要的 - 优化器应该意识到,如果应用 select * from view order by x , View 内排序是多余的,但是冒这个风险没有多大意义/把额外的代码困惑)。

我可能还会将这种理念扩展到数据转换/格式化之类的事情 - 将数据保留为存储形式,以便尽可能长时间保持有用,并让调用应用程序决定格式(即不在 View 中将所有日期格式化为 yyyyMMdd 字符串,如果调用应用程序必须再次解析它以对其进行一些数学运算等)

关于sql - View 的顺序是否有保证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54688965/

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