新生求助:SQL怎样删除之前查询过的行,就是查询一条记录删除一条记录。
先随机查询一条记录selecttop1numfromquestion_temporderbynewid()然后怎样根据关键字num将这条记录删除?PS.已经试过:(不行)...
先随机查询一条记录
select top 1 num from question_temp order by newid()
然后怎样根据关键字num将这条记录删除?
PS.已经试过:(不行)
select top 1 num from question_temp order by newid()
delete from question_temp where num=(select top 1 num from question_temp order by newid())
select top 1 num from question_temp order by newid()是随机查询一条数据的意思~ 展开
select top 1 num from question_temp order by newid()
然后怎样根据关键字num将这条记录删除?
PS.已经试过:(不行)
select top 1 num from question_temp order by newid()
delete from question_temp where num=(select top 1 num from question_temp order by newid())
select top 1 num from question_temp order by newid()是随机查询一条数据的意思~ 展开
展开全部
---建立测试表
create table s_test
(
id int identity(1,1),
name varchar(20)
)
--随机生成20条数据
insert into s_test (name ) select RIGHT('000000'+ convert(varchar(20),cast(floor(rand()*1000000) as int)),6)
go 20
--建立辅助表
create table s_ls
(id_ls int identity(1,1),
id int,
name varchar(20)
)
--随机读取一条记录,将记录保存到辅助表
insert into s_ls (id,name )
select top (1) * from s_test
order by NEWID ()
---查看刚才读取的数据(最后一次的数据)
select * from s_ls where id_ls =(select MAX(id_ls ) from s_ls )
--在测试表中将该记录删除
delete from s_test where id in (select id from s_ls )
--查看测试表是否删除记录
select * from s_test
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
查询的时候,你将num保存下来嘛, 删除的时候使用保存的这个值来删
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将=改成in试试
追问
已解决,谢谢!
declare @a int
set @a=(select top 1 num from question_temp order by newid())
select @a
delete from question_temp where num=@a
追答
解决就好~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询