因为top 后面不能是变量。我觉得只能这样写:
declare @i int
select @i=count(*) from tab
where 条件A --求出满足条件A的条数,存在变量@i中
select identity(int,1,1) as id,* into #temp
from tab
where 条件B --取出满足B的记录插入临时表,并加序号
select * from #temp
where id<=@i --从临时表中取出所需要的结果。
这个直接用语句查询!
希望对你有帮助!
对于楼主最后补充的问题。其实我的答案中已经解决了。我给的语句中的变量 @i 其实就是你要的那个 a 值。在这里不能用top 了,我给每条记录加了序号,然后用序号<=@i 同样能取出你要的结果。
温馨提示:答案为网友推荐,仅供参考