如何删除sql中除一行之外的所有行

Si8*_*Si8 3 sql sql-server

我有以下查询:

DELETE FROM [DSPCONTENT01].[dbo].[Contact Center]
WHERE [Contact Center] IS NULL
  AND [F2] IS NULL
Run Code Online (Sandbox Code Playgroud)

如何修改查询,以便在执行后仅显示第 15 行,并删除所有其他行?

ari*_*405 5

除特定行之外的其他删除方式:

DELETE FROM [DSPCONTENT01].[dbo].[Contact Center] WHERE F10 NOT IN (2096)
Run Code Online (Sandbox Code Playgroud)

您还可以将Select特定记录放入临时表,然后删除原始表,最后将数据从临时表复制到原始表。像这样的东西:

create table #ContactCenter as
select * from [DSPCONTENT01].[dbo].[Contact Center] where F10 = 2096

truncate table [DSPCONTENT01].[dbo].[Contact Center]

insert into [DSPCONTENT01].[dbo].[Contact Center]
    select * from #ContactCenter
Run Code Online (Sandbox Code Playgroud)