一番上のレコードを除くすべてのレコードを削除するスクリプトを作成しようとしています (それがどれでも問題ない場合は、1 つのレコードが残っている必要があります)。これが私が今持っているフォーマットです:
DELETE FROM table
WHERE id NOT IN (
SELECT id
FROM (
SELECT id
FROM table
ORDER BY id DESC
LIMIT 1 ))
しかし、SQL Server 2005 では LIMIT が認識されない関数であることを認識しているため、どうすればよいか困っています。誰でもこのトピックに関する専門知識を持っていますか? そして、これらのレコードは複製されません.1つのレコードを除いてすべて取り出したいだけです.
アップデート:
ここで達成しようとしていることが完全に明確ではないことに気付きました。私がする必要があるのは、別の列に同じ値があることを考慮して、このテーブルの一番上のレコードを除くすべてを削除することです (それを「anotherid」と呼びましょう)。
したがって、次のようになります。
id value anotherid
1 3 1
2 4 1
3 5 2
4 6 2
5 7 2
これに:
id value anotherid
1 3 1
3 5 2