Sha*_*hah 32 sql t-sql sql-server
我对某些专栏删除前N行的订单感到困惑.
我在这里创建了一个示例,例如小提琴
这些查询有什么问题?
Delete Top(3) from Table1 order by id desc
Delete Top(3) from Table1
where id IN (select id from Table1 order by id desc)
Run Code Online (Sandbox Code Playgroud)
因为在mysql中,limit关键字可以很好地完成工作
Mar*_*ith 71
您可以使用CTE执行更快的有序删除,而无需单独的子查询来检索前3个ID.
WITH T
AS (SELECT TOP 3 *
FROM Table1
ORDER BY id DESC)
DELETE FROM T
Run Code Online (Sandbox Code Playgroud)
Cri*_*scu 10
将top 3子句添加到子选择中:
Delete from Table1
where id IN (
select top 3 id
from Table1
order by id desc
)
Run Code Online (Sandbox Code Playgroud)