你會說這是安全的假設由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