【问题标题】:Fetch records in the same order WITHOUT using ORDER BY clause以相同的顺序获取记录而不使用 ORDER BY 子句
【发布时间】:2009-01-18 03:53:47
【问题描述】:

我是 T-SQL 的新手。谁能告诉我如何在不使用 order by 子句的情况下以相同的顺序从 sql 表中获取记录?

【问题讨论】:

  • 为什么要避免使用 order by 子句?之后您可以使用 Java 或 C# 在您的集合中对它们进行排序,以避免使用 order by。在 java 中有 Apache BeanUtils 可以很容易地对给定属性上的对象集合进行排序。
  • 为什么要避免“order by”?

标签: sql sql-server tsql sql-order-by


【解决方案1】:

这是不可能的。有时你可能会很幸运,但你不能依赖它。

【讨论】:

    【解决方案2】:

    如果您使用的是 SQL Server(因为您提到了 T-SQL),您可能会通过在表上定义一个聚集索引来获得一定的运气,这会强制对表中的行进行存储排序。但是,如果您没有指定 order by 子句,则添加或删除连接或 where 子句条件可能会导致该顺序发生变化,因为优化器可能会选择不使用该集群索引。

    【讨论】:

      【解决方案3】:

      如果您定义了控制排序/顺序的聚集索引,则可以在选择中使用索引提示。

      【讨论】:

        猜你喜欢
        • 2015-03-15
        • 2012-01-28
        • 2015-12-03
        • 2023-03-16
        • 2018-09-09
        • 1970-01-01
        • 2012-04-21
        • 2021-06-08
        • 1970-01-01
        相关资源
        最近更新 更多