【向All提问】这句话的结果?

晓风残月0110 2008-01-04 12:21:30

declare @t table (id int,test int)
insert into @t select 1,1
insert into @t select 3,3
insert into @t select 4,3
insert into @t select 2,2
insert into @t select 5,3
insert into @t select 6,3
insert into @t select 7,3
select * from @t a where id=(select top 1 id from @t where test=a.test and test =3 order by newid())


大家先猜猜答案,在去调试
...全文
135 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
晓风残月0110 2008-01-05
  • 打赏
  • 举报
回复
wynlc 2008-01-04
  • 打赏
  • 举报
回复
3,3
4,3
5,3
6,3
7,3
都有可能
changjiangzhibin 2008-01-04
  • 打赏
  • 举报
回复
(3,4,5,6,7),3 随机一个
叶子 2008-01-04
  • 打赏
  • 举报
回复
猜不出来了,不猜了
-狙击手- 2008-01-04
  • 打赏
  • 举报
回复
3,4,5,6,7 都有可能
叶子 2008-01-04
  • 打赏
  • 举报
回复
order by newid()好像是随机的吧
叶子 2008-01-04
  • 打赏
  • 举报
回复
id=(select top 1 id from @t where test=a.test and test =3 order by newid())
默认升序排列
test=3的id有3,4,5,6,7
最小的3
然后搜索id=3 的就一条呀
elvis_gao 2008-01-04
  • 打赏
  • 举报
回复
肯定不是,有order by newid(),我猜的是3,4,5,6,7,但是错了,下面的接着猜>>>>>
叶子 2008-01-04
  • 打赏
  • 举报
回复
test=a.test and test =3 ,满足条件的就一个呀
3,3
晓风残月0110 2008-01-04
  • 打赏
  • 举报
回复
我想问两种情况,结果为什么不一样
sp4 2008-01-04
  • 打赏
  • 举报
回复
每次结果都可能不同
有个order by newid()了
晓风残月0110 2008-01-04
  • 打赏
  • 举报
回复
测试1:随机选出结果(0,1,2,3,4,5)条数据
测试2:随机选出满足添加五条数据中的一条
qiuming0306 2008-01-04
  • 打赏
  • 举报
回复
帮顶,学习
中国风 2008-01-04
  • 打赏
  • 举报
回复
--会出现重复..
可用游标写入临时表。。或确定唯一test列后再连
晓风残月0110 2008-01-04
  • 打赏
  • 举报
回复
两种情况下,结果不同,原因是什么呢?

使用临时表时的结果大家给的少了一个哦
晓风残月0110 2008-01-04
  • 打赏
  • 举报
回复
不使用临时表

create table t(id int,test int)
insert into t select 1,1
insert into t select 3,3
insert into t select 4,3
insert into t select 2,2
insert into t select 5,3
insert into t select 6,3
insert into t select 7,3
select * from t a where id=(select top 1 id from t where test=a.test and test =3 order by newid())

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧