ORDERBY--SQL的奇怪问题

ORDERBY--SQL的奇怪问题,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,几天前,我在创建一个我使用的新表时遇到了一个奇怪的问题,orderby Select - Into - From and Order By (column name) 当我打开那张桌子时,看到桌子没有相应地排列 我重新验证了多次,以确保我做了正确的事情 我想补充的另一件事是,直到我不在中使用时,我才能看到所需的结果,但一旦我创建了新表,我就会发现tht列没有顺序。请帮帮我 提前谢谢。。在发布这个问题之前,我做了三天的研究,但还没有找到答案 SELECT [WorkOrderID],

几天前,我在创建一个我使用的新表时遇到了一个奇怪的问题,
orderby

Select - Into - From and Order By (column name) 
当我打开那张桌子时,看到桌子没有相应地排列

我重新验证了多次,以确保我做了正确的事情

我想补充的另一件事是,直到我不在中使用
时,我才能看到所需的结果,但一旦我创建了新表,我就会发现tht列没有顺序。请帮帮我

提前谢谢。。在发布这个问题之前,我做了三天的研究,但还没有找到答案

SELECT 
    [WorkOrderID], [ProductID], [OrderQty], [StockedQty] 
INTO 
    [AdventureWorks2012].[Production].[WorkOrder_test] 
FROM 
    [AdventureWorks2012].[Production].[WorkOrder] 
ORDER BY
    [StockedQty]

SQL 101初学者版:SELECT语句没有定义顺序,除非您定义了顺序

当我打开那张桌子的时候

这可能会在没有订单的情况下发布SELECT(TOP 1000 IIFC)

创建新表时,我使用Select-Into-From和orderby(列名)

哪种类型是完全不相关的-您基本上浪费了对输入数据进行排序的性能


要在select中创建订单,请通过向select添加order by子句来创建订单。表的内部顺序是按聚集索引进行的,但是查询可以按它想要的任何顺序返回结果。基本的SQL问题,正如我在第一句中所说的。任何关于sql的好书都会在第一章中介绍这一点。SQL使用集合方法,集合没有内在顺序。

SQL 101初学者:SELECT语句没有定义的顺序,除非您定义了顺序

当我打开那张桌子的时候

这可能会在没有订单的情况下发布SELECT(TOP 1000 IIFC)

创建新表时,我使用Select-Into-From和orderby(列名)

哪种类型是完全不相关的-您基本上浪费了对输入数据进行排序的性能


要在select中创建订单,请通过向select添加order by子句来创建订单。表的内部顺序是按聚集索引进行的,但是查询可以按它想要的任何顺序返回结果。基本的SQL问题,正如我在第一句中所说的。任何关于sql的好书都会在第一章中介绍这一点。SQL使用集合方法,集合没有内在顺序。

首先,T-SQL是一种基于集合的语言,集合没有顺序。更重要的是,它也并不意味着命令的串行执行,即上述查询不是按顺序执行的,而是SELECT语句的处理顺序如下:

1.FROM
2.ON
3.JOIN
4.WHERE
5.GROUP BY
6.WITH CUBE or WITH ROLLUP
7.HAVING
8.SELECT
9.DISTINCT
10.ORDER BY
现在,当您执行查询而不将
插入到
中时,所选列数据将根据“
Order By”
子句中指定的条件进行排序,但当使用
into
时,新表的格式将通过计算select列表中的表达式来确定。(请记住,Order By子句尚未计算)。 新表中的列是按照选择列表指定的顺序创建的,但行不能排序。这是你可以参考的Into条款的限制


首先,T-SQL是一种基于集合的语言,集合没有顺序。更重要的是,它也并不意味着命令的串行执行,即上述查询不是按顺序执行的,而是SELECT语句的处理顺序如下:

1.FROM
2.ON
3.JOIN
4.WHERE
5.GROUP BY
6.WITH CUBE or WITH ROLLUP
7.HAVING
8.SELECT
9.DISTINCT
10.ORDER BY
现在,当您执行查询而不将
插入到
中时,所选列数据将根据“
Order By”
子句中指定的条件进行排序,但当使用
into
时,新表的格式将通过计算select列表中的表达式来确定。(请记住,Order By子句尚未计算)。 新表中的列是按照选择列表指定的顺序创建的,但行不能排序。这是你可以参考的Into条款的限制


实际上,order by不能保证表中的顺序的原因是表的(物理)顺序不是由insert order定义的,而是由表上的聚集索引定义的(如果存在,这是非常推荐的)。实际上,order by不能保证表中的顺序的原因是(物理)表的顺序不是由插入顺序定义的,而是由表上的聚集索引定义的(如果存在聚集索引,则非常推荐)。