你会说这是安全的假设由SQL输出顺序
select * from table1;
返回的输出会以同样的方式来订购的输出:
select * from table1 where table1.a<0;
其中a是一些随机属性table1的?
谢谢!
你会说这是安全的假设由SQL输出顺序
select * from table1;
返回的输出会以同样的方式来订购的输出:
select * from table1 where table1.a<0;
其中a是一些随机属性table1的?
谢谢!
如果你指的是列,那么我从来没有看到它与SSMS中编辑表的顺序不同,但我不确定这是否是一条硬性规则。
行没有固有的顺序。在没有排序的情况下,完全相同的查询不保证每次都以相同的顺序返回行。
这将是相同的
select * from table1
order by table1.PK;
select * from table1 where table1.a<0
order by table1.PK;
即使一个表群集PK不能保证的顺序没有ORDER BY子句
这必须是一个DUP返回行。我会寻找一个并删除。
列的顺序是在数据库模式中定义的,因此您应该考虑select *
中列的返回顺序总是相同(对于更改列顺序,有特定的命令可以在模式中更改此值,是alter的变体表)
行的顺序号。如果你想结果为您必须使用ORDER BY子句
select * from your_table
order by your_column
我没有看到explicitally设置所选行,以确保特定顺序的为什么不是 –
它可能取决于您的DBMS软件(SQL Server,MySQL等) - 但通常没有订单保证d。 – Nicarus
没有订单是保证,除非它明确指定,但它绝对取决于DBMS – shamsup