新生求助: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()是随机查询一条数据的意思~
展开
 我来答
移动引领生活
2015-04-11 · TA获得超过1053个赞
知道小有建树答主
回答量:624
采纳率:0%
帮助的人:347万
展开全部

---建立测试表
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yiyanxiyin
2015-04-11
知道答主
回答量:19
采纳率:0%
帮助的人:6.2万
展开全部
查询的时候,你将num保存下来嘛, 删除的时候使用保存的这个值来删
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lyymin
2015-04-11 · 超过63用户采纳过TA的回答
知道小有建树答主
回答量:101
采纳率:0%
帮助的人:97.6万
展开全部
将=改成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
追答
解决就好~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式