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

时间:2014-04-11 17:30:08

标签: sql sql-server

我有以下查询:

DELETE FROM [DSPCONTENT01].[dbo].[Contact Center]
WHERE [Contact Center] IS NULL
  AND [F2] IS NULL

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

3 个答案:

答案 0 :(得分:1)

您的意思是要删除除 115 以外的所有行?

如果是,那么使用下面的 -

DELETE FROM [DSPCONTENT01].[dbo].[Contact Center] 
WHERE ([Contact Center] IS NOT NULL OR [F2] IS NULL)

答案 1 :(得分:1)

截至目前,您可以这样做,假设此记录是唯一一个F10值为2096 的记录:

DELETE FROM [DSPCONTENT01].[dbo].[Contact Center] 
WHERE F10 <> 2096

但是,从长远来看,您必然会遇到其他问题。该表需要primary key和适当的字段定义。急。

答案 2 :(得分:1)

除特定行外还有其他一些删除方式:

DELETE FROM [DSPCONTENT01].[dbo].[Contact Center] WHERE F10 NOT IN (2096)

您还可以将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