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

默认情况下,SQL Server表已排序

贲永思
2023-03-14
问题内容

我有一个简单的SSIS程序包,在该程序包中,我将数据从平面文件导入SQL Server表(SQL Server
005)。文件包含70k行,表没有主键。导入成功,但是当我打开SQL
Server表时,行的顺序与文件的顺序不同。仔细观察后,我看到表中的数据默认情况下按第一列排序。为什么会这样呢?以及如何避免默认排序?谢谢。


问题答案:

除非您order by在SQL查询中指定,否则您不能依赖排序。SQL是可与集合一起使用的关系代数。这些集合是无序的。数据库表没有内部顺序。

由于从表中检索数据的方式,这些集很可能是有序的。这可以基于主键,插入顺序,聚簇键,基于查询的执行计划或表中实际数据甚至月相的看似随机的顺序。

底线是,如果您要特定的订单,请使用order by。如果您不希望特定的顺序,则DBMS可以自由地以 任何 顺序交付行,包括基于第一列的行。

如果确实要根据导入文件中的位置对它们进行排序,则应在表中添加另一列,以根据其在该文件中的位置存储数量递增的数字。然后使用order by使用该列。但这是一个非常随意的排序顺序,通常最好选择对数据更有意义的一种(事务ID,日期/时间,客户编号或其他任何方式)。

如果要避免默认排序(可能是html" target="_blank">变量),请使用特定的排序。



 类似资料:
  • 我做了一些调查,得到了奇怪的结果。我的班级: java: 所有的包层都是简单的,以供测试。例如: 组织导入之前的Eclipse: 组织导入后的Eclipse: 组织导入前的NetBeans:

  • 默认情况下,我们的路由器是Yaf_Router, 而默认使用的路由协议是Yaf_Route_Static,是基于HTTP路由的, 它期望一个请求是HTTP请求并且请求对象是使用Yaf_Request_Http

  • 我实现了一个在另一个堆栈溢出post上找到的方法,允许使用jQuery展开和折叠表行。该方法很简单,工作正常,但我遇到了缺省情况下扩展行的问题。我如何使这些在页面加载时显示为折叠的,以便用户可以决定展开哪些? 作为一个附带说明,有没有什么方法使折叠/展开看起来更平滑,而不是只是瞬间打开或关闭? 谢谢!

  • 问题内容: 我正在运行一个Ant zip任务来压缩Unix系统上目录的全部内容: 创建zip并检查内容后,我可以看到一些配置文件,Visual Studio特定文件以及其他文件(如Mac OS .DS_STORE文件)不在zip中。 是否遵循任何规则来决定不包含哪些文件? 我需要事先知道,因为我需要在压缩之前(当前使用Java)在该目录上创建现有文件的列表。现在,我排除了所有目录和隐藏文件(使用F

  • 问题内容: 众所周知,根据JLS7 p.4.12.5, 每个实例变量均使用默认值初始化。例如(1): 但是我一直认为,这样的类实现(2): 绝对等于示例(1)。我期望,复杂的Java编译器会看到(2)中的所有这些初始化值都是多余的,并忽略了它们。 但是突然对于这两个类,我们有两个不同的字节码。 例如(1): 例如(2): 问题是: 为什么?但这是显而易见的要优化的事情。什么原因? UPD: 我使用

  • 问题内容: 我有一个关于乐观锁定Hibernate的问题。我试图深入了解Hibernate的乐观锁定,但是我有一个疑问。Hibernate使用版本方法(整数或时间戳)来实现乐观锁定。要进行配置,您可以使用@Version批注(或xml配置)并创建一个version属性。另一个选项是使用optimistic- lock =“ all”属性进行配置而不进行版本控制。 我的问题是,如果您没有定义任何版本