读书人

加Top和不加Top有什么区别?解决方案

发布时间: 2012-01-10 21:26:51 作者: rapoo

加Top和不加Top有什么区别?
sql= "select * from userinfo where userid=123456 "

sql= "select top 1 * from userinfo where userid=123456 "

set rs=conn.execute(sql)
if rs.eof then
else
nickname=rs(0)
end if
rs.close
set rs=nothing

在都取第一条记录的情况下,加 top 1和不加Top有什么区别

[解决办法]
top 1 非常明确的表明只返回一条纪录

而不加也能会返回多条记录,比如当userid不是主键的时候,搜索到第一条后还会继续找下去

如果userid确定为主键 加与不加top 1是一样的效果
[解决办法]
sql= "select * from userinfo where userid=123456 "

sql= "select top 1 * from userinfo where userid=123456 "
第一条如果userid有多个等于123456,那么它返回的结果不止一条
第二条它只返回一条
[解决办法]
如果只有一条结果的话
------------------------
加top1`
要比不加时,时间长
=====================
完毕!!!
[解决办法]
如果userid是主键或者唯一约束+索引的 那么加不加 应该没有差

如果不是 那么差别就比较明显

加了top 1
找到第一条满足条件的行就返回了
不加TOP 1的就会遍历表所有行

读书人网 >SQL Server

热点推荐