特定のレコードに対してSELECTを実行するときにWHERE句の順序を維持することは可能ですか?例えばWHERE SQLでの順序選択を維持する
、次のSELECT文与えられた:私は、結果として戻ってきたいと思い
SELECT [RecSeq] FROM [MyData] WHERE
[RecSeq]=3 OR [RecSeq]=2 OR [RecSeq]=1 OR [RecSeq]=21 OR [RecSeq]=20 OR
[RecSeq]=19 OR [RecSeq]=110 OR [RecSeq]=109 OR [RecSeq]=108 OR
[RecSeq]=53 OR [RecSeq]=52 OR [RecSeq]=51;
を:
3
2
1
21
20
19
110
109
108
53
53
51
しかし、私が戻って取得することは、特定のではありません注文。現在、私は必要な各レコードのSELECTステートメントを呼び出すループを持っています。これは、1〜70万倍の範囲である可能性があります。言うまでもなく、パフォーマンスは最高ではありません。
解決策はありますか、ループにはまっていますか?
のように並べ替えとをフィルタリングする派生テーブルを使用することができ、そのOR配列はまた、INを使用して書き込むことができます。 –
クライアントが処理する必要がある注文を知っている場合。より小さい結果セットを扱っていたなら、順序を戻さずにクライアントにバッファリングさせ、クライアントは結果セット内でサーバーを結びつけずに望む順番に移動できるようにします。しかし、70万行が返されると、それはおそらく行く方法ではありません。また、どのDBMSを使用していますか? –