- - PR -
もっとも古いレコードを取得するSQLについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2009-03-09 10:16
いつもお世話になっております。
SQL初心者のため、SQLが上手に書けず困っています。 条件を満たした(deleteflag<>0 OR statues<>0)、 もっとも古い更新日(koshin)のレコードのキーを取得しようと、 下記のように記述したのですが、 見た目も悪く遅いのです。 もっとよい書き方はないでしょうか? SQL SERVER 2005 koshinはDateTime型 deleteflagおよびstatuesはint型 SELECT @key = Table.[key] FROM Table WHERE (Table.[deleteflag] <> 0 OR Table.[statues] <> 0) AND Table.[koshin] = (SELECT MIN(Table.[koshin]) as OLD FROM Table WHERE (Table.[deleteflag] <> 0 OR Table.[statues] <> 0)) [ メッセージ編集済み 編集者: あかり 編集日時 2009-03-09 10:17 ] |
|
投稿日時: 2009-03-09 10:36
SELECT
TOP1 * FROM Table WHERE (deleteflag <> 0 OR statues <> 0) ORDER BY koshin ASC ではどうでしょう?? |
|
投稿日時: 2009-03-09 12:58
ジン様回答ありがとうございます。
TOP(1)は遅いという思い込みがあり試していませんでした。 実行し確認いたしましたら、速度も視認性も向上しました。 ありがとうございました。 |
1