我正在尝试编写一个脚本来删除除最上面的记录之外的所有记录(如果它只是任何一个也可以,那么只剩下一条记录)。这是我现在的格式:
DELETE FROM table
WHERE id NOT IN (
SELECT id
FROM (
SELECT id
FROM table
ORDER BY id DESC
LIMIT 1 ))
但我意识到 LIMIT 在 SQL Server 2005 中不是一个公认的功能,所以我有点不知道该怎么做。有人对这个主题有任何专业知识吗?而且这些记录没有重复,我只想取出除一条记录之外的所有记录。
更新:
我意识到我在这里想要完成的事情并不完全清楚。我需要做的是删除该表中除顶部记录之外的所有记录,因为它在另一列中具有相同的值(我们称其为“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