从数据库中选择数据时的顺序是什么?

Ken*_*hou 3 sql sql-server

假设我有一张桌子:

CREATE TABLE [tab] (
    [name] varchar,
    [order_by] int
)
Run Code Online (Sandbox Code Playgroud)

表中有10行,所有行对order_by都有相同的值(假设它为0)

如果我然后发出以下SQL:

select * from [tab] order by [order_by]
Run Code Online (Sandbox Code Playgroud)

行的顺序是什么?在这种情况下,什么因素决定了行顺序?

Mar*_*ers 8

它没有定义.数据库可以按照它选择的任何顺序将它们吐出来,甚至可以改变查询之间的顺序(如果感觉就好)(它可能不会这样做,但你不应该依赖于顺序一致).

  • 就钱了.根据定义,订单未定义:-).不要假设任何特定的订单. (4认同)

HLG*_*GEM 6

如果您订购的列没有变化,则没有保证订单.

只要您想要定义订单,就需要一个良好的order by子句.我甚至无法想象为什么有人会使用orderby子句,如果正在排序的列中没有变化,或者为什么你甚至会有一个从不具有一个值的列.