2017-05-04 7 views
0

例えば、私はこれは、すべてのSQL INSERT文を使用して新しいテーブルを作成する場合、テーブルを作成する前にデータの順序を変更できますか?

2,35,47,23,1,15でいないために、おおよそIDのリストを返す

Select ID, Name, Place 
Into ##Temp_Table 
From Table1 

Select ID from ##Temp_Table 

...あなたはポイントを得る持っています。 Order By IDを追加すると、正しい昇順で取得されます。

彼らは声明の中へ挿入する前に、正しい順序にする方法があるように、私は

Select ID from ##Temp_Table 

私はIDの昇順を得るとき?

私は

Select ID, Name, Place 
Into ##Temp_Table 
From Table1 
Order By ID 

Select ID from ##Temp_Table 

をしようとした場合、私はまだごちゃ混ぜ混乱を取得します。

ありがとうございます!

+1

は、インデックスを追加しますか?クラスタ化された主キーを作成すると、ORDER BYなしで適切な順序でそれらを取得できます。しかし、すべてのテーブルは順序付けられていないコレクションとみなされることに注意してください。本当に順序を欲しい場合は、決して想定してはならず、常に明示的にORDER BYを行うべきです。 – pmbAustin

+1

@pmbAustinクラスタ化されたPKを使用すると、ORDER BYを使わずに適切な順番でレコードを取得する*おそらく*保証されます。 – alroc

答えて

2

最初に、order byが指定されていない限り、結果の順序は決して保証されません。

第2に、一意のクラスタ化インデックスをIdに作成すると、おそらくあなたが望むものが得られます。より多くの場合

Select ID, Name, Place 
Into ##Temp_Table 
From Table1 

create unique clustered index uix_##temp_table on ##temp_table (id) 

Select ID from ##Temp_Table 

、Marc_Sでこの答えを参照してください。あなたは、テーブルを作成した後https://stackoverflow.com/a/20050403/2333499

関連する問題