SQL输出顺序

时间:2016-06-17 20:31:58

标签: sql

你会说假设

返回的输出是安全的
   select * from table1; 

将以与输出相同的方式排序:

select * from table1 where table1.a<0;

其中a是table1的一些随机属性?

谢谢!

2 个答案:

答案 0 :(得分:1)

如果您的意思是列,那么我在SSMS中编辑表时从未看到它与订单的不同,但我不确定这是否是一个严格的规则。

行没有固有的顺序。如果没有排序,则不能保证完全相同的查询每次都以相同的顺序返回行。

这将是相同的

select * from table1 
order by table1.PK;

select * from table1 where table1.a<0
order by table1.PK;

即使是具有群集PK的表也不能保证在没有order by子句

的情况下以该顺序返回行

这必须是双重的。我会寻找一个并删除。

答案 1 :(得分:0)

列的顺序是在数据库模式中定义的,因此您应该将select *中返回的列序列视为相同(为了更改列序列,在模式中有更改此值的特定命令,是alter table的变体)

行号的顺序..如果你想确定所选行的特定顺序,你必须使用order by子句明确设置

 select * from your_table
 order by your_column