Sql server 2008 r2 通过查询删除SQL中的行

Sql server 2008 r2 通过查询删除SQL中的行,sql-server-2008-r2,Sql Server 2008 R2,我在一个表中有大约一百万行数据。我想删除最后3行中每5行的 例如: Row1 Row2 Row3 Row4 Row5 Row6 Row7 Row8 Row9 Row10 在我删除它们之后,应该是这样的: Row1 Row2 Row6 Row7 我该怎么做呢?这应该可以做到,但您需要按的顺序指定一些列。 应该有其他规则来删除这些记录 DROP TABLE _test GO create table _test (id int identity(1,1) ,x int ) GO insert

我在一个表中有大约一百万行数据。我想删除最后3行中每5行的

例如:

Row1
Row2
Row3
Row4
Row5
Row6
Row7
Row8
Row9
Row10
在我删除它们之后,应该是这样的:

Row1
Row2
Row6
Row7

我该怎么做呢?

这应该可以做到,但您需要按的顺序指定一些列。 应该有其他规则来删除这些记录

DROP TABLE _test
GO
create table _test
(id int identity(1,1)
 ,x int 
)
GO
insert into _test(x)
select 1
go 50


;with cte as (
    select [rwn] = row_number() over(partition by 1 order by id)
    from _test
)
delete from cte 
where 1=1
    and rwn%5 not in (1,2)

select * from _test

使用此语句。这是有效的

delete from temp12  where Reg_No in (select Reg_No from  
(select Reg_No,Name, Row_number() over (order by reg_no) abc from temp12 )
 where  abc  like '%3' or abc like '%4' or abc like '%5' or abc like '%8' or abc like '%9'  or abc like '%0')