删除全部数据,但保留最后添加的10条,SQL语句如何写

删除全部数据,但保留最后添加的10条,SQL语句如何写,第1张

delete不行,因为这个实在是太慢了,假如你的表中有很多条数据,那么数据库会卡死的。建议用create

table

表名_new

as

select

*

from

表名

where

row_number<=10drop

table

表名。然后把表名表名_new改成原来的表名就行了。如果不能删,那么用一个临时表存一下,然后将表truncate,然后再倒回来。

设表名及结构为:TABLENAME(FIELD1,FIELD2,FIELD3)

这样:

select

top

10

FIELD1,FIELD2,FIELD3

from

(

SELECT

SORTSTR=0,FIELD1,FIELD2,FIELD3

FROM

TABLENAME

union

SELECT

SORTSTR=1,FIELD1='',FIELD2='',FIELD3=''

union

SELECT

SORTSTR=2,FIELD1='',FIELD2='',FIELD3=''

union

SELECT

SORTSTR=3,FIELD1='',FIELD2='',FIELD3=''

union

SELECT

SORTSTR=4,FIELD1='',FIELD2='',FIELD3=''

union

SELECT

SORTSTR=5,FIELD1='',FIELD2='',FIELD3=''

union

SELECT

SORTSTR=6,FIELD1='',FIELD2='',FIELD3=''

union

SELECT

SORTSTR=7,FIELD1='',FIELD2='',FIELD3=''

union

SELECT

SORTSTR=8,FIELD1='',FIELD2='',FIELD3=''

union

SELECT

SORTSTR=9,FIELD1='',FIELD2='',FIELD3=''

union

SELECT

SORTSTR=10,FIELD1='',FIELD2='',FIELD3=''

)

a

order

by

SORTstr

思路是,1、查询中加一个排序字段,用来次空记录放到最后。

2、写出10个空记录查询与主表连接。

这样,无论主表有多少条记录,都能显示10条记录,不足的用空记录补充

语句看似很多,其实10行空记录只要写一行,其余复制即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11938344.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存