SELECT TOP 1 t.a FROM (select top(@_n) t1.a from Table1 as t1)
由变量取其中某一条数据     如果数据特别大   效率很低   请问有什么办法可以优化

解决方案 »

  1.   

    单纯你这句话和这个好像没啥区别。SELECT TOP 1 a FROM Table1 
      

  2.   

    那条语句的作用是数据中取第几条记录,如果数据量特别大   使用top  效率太低    不用top该如何使用
      

  3.   

    那你不如加个自增ID,然后直接where id=几这样来查
      

  4.   

    不明白,使用top效率怎么会低呢
      

  5.   

    这样可能会快一些,先把top n放进内存,内存比HDD查询速度要快很多select top(@_n) a INTO #TABLE1 from Table1SELECT TOP 1 a FROM #TABLE1
      

  6.   

    为你这个语句又没有分页的意思,又没有其他用意,什么不直接Table1中取TOP 1 ,非要嵌套一层?你可以用ROW_NUMBER()生成序号,然后按照你的需要去对应的序号
    ;with cte 
    as
    (
    select *,rn=row_number()over(order by getdate()) from table1
    )
    select * from  cte where rn=1