2011-11-08 8 views
3

私は私のクエリである2008年SQL:結果の順序が 'IN'式の値にマッピングされていますか?

SQL Serverでテーブルから、私は単一の値を取得する対象のレコードIDのリストを持っている:

SELECT TestResult.FailureDetails FROM TestResult WHERE TestResult.ID IN (1,2,3,...) 

「IN」と表現は、IDの数百人が含まれています。 ID列はテーブルの主キーです。

私のテーブルは次のようである場合:

ID Value 
1  A 
2  B 
3  C 

は、私はいつも結果は「IN」と表現して出現の順番で順序付け得るのだろうか?ない場合は、私がやって検討しています:

SELECT TestResult.ID, TestResult.FailureDetails FROM TestResult WHERE TestResult.ID IN (1,2,3,...) 
+0

あなたは常にあなたの例に従ってID' 'のためにしたいですか、あなたは、任意の注文をサポートする必要がありますか? –

+0

ID順にうまくいきました。以下の答えに従って、私はTestResult.IDも選択しています。 – siger

答えて

1

をいいえ、あなたは常にINに基づいた順序で結果を得ることはありません。

明示し、ORDER BY句を追加してください。

SELECT FailureDetails 
FROM TestResult 
WHERE ID IN (1,2,3,...) 
ORDER BY ID; 
0

IN句で注文された場合、私は驚くでしょう。 ORDER BYを取得していないので、おそらく結果はPK順になりますが、どちらにも依存しません。

順序が重要である場合は、それを明示的に設定する必要があります。

SELECT TestResult.ID, TestResult.FailureDetails FROM TestResult WHERE TestResult.ID IN (1,2,3,...) 
ORDER BY TestResult.ID 
関連する問題