注册 登录
编程论坛 SQL Server论坛

数据库问题 高手来

达文西 发布于 2007-11-22 22:55, 705 次点击
select top 1 * from student where id not in(select top 5 id from student order by id desc)
已知道student表有6行记录


现在返回表的哪行记录

我现在晕了

第一  top到底代表啥  
第2    如果id 是不规则的大小排列呢怎么办
第三 id是不是必须这样  123456  
 或者 654321
6 回复
#2
guoxhvip2007-11-23 00:11
文西 这问题你居然发到这来了 在群里不是已经给你讲了吗;P
#3
缘吇弹2007-11-23 00:51
top :顶部的意思. top 5 就是返回最前的5条记录
id 只要不是text 、ntext、image 类型的都可以用order by 来排序
id 不一定是123456 或 654321
#4
orliubc2007-11-23 07:17
select top 1 * from student where id not in(select top 5 id from student order by id desc)
已知道student表有6行记录


如果ID为1,2,3,4,5,6
就返回ID为1的记录
#5
orliubc2007-11-23 07:22
select top 1 * from student where id not in(select top 5 id from student order by id desc)
等价于
select top 1* from student  [order by id ASC]
#6
西风独自凉2007-11-23 08:08
:time:
#7
Brian_China2007-11-24 12:19
回答
数据库的执行先从括号里的先执行,因为你括号前加了 not  关键字,就是除去符合括号内条件的首选的5行,然后从剩余的部分执行括号外的代码.
1