SELECT TOP 1 t.a FROM (select top(@_n) t1.a from Table1 as t1)
由变量取其中某一条数据 如果数据特别大 效率很低 请问有什么办法可以优化
------解决方案--------------------
那你不如加个自增ID,然后直接where id=几这样来查
------解决方案--------------------
这样可能会快一些,先把top n放进内存,内存比HDD查询速度要快很多
select top(@_n) a INTO #TABLE1 from Table1
SELECT TOP 1 a FROM #TABLE1
------解决方案--------------------
为你这个语句又没有分页的意思,又没有其他用意,什么不直接Table1中取TOP 1 ,非要嵌套一层?
你可以用ROW_NUMBER()生成序号,然后按照你的需要去对应的序号
;with cte
as
(
select *,rn=row_number()over(order by getdate()) from table1
)
select * from cte where rn=1