过程是这样的:
首先declare @strSQL varchar(5000) -- 主语句
    set @strSQL =select 
    exec (@strSQL)
这样取得了一个记录集,然后我想要在这个记录集中取两个值,分别是这个记录集中
第一条记录中字段"sorder"的值,这里先叫做a,另一个是记录集中最后一条记录中字段"sorder"的值,
这里先叫做b
这个字段是float型的。
取到值后,分别对a和b取得他们的整数部分,
最后"select * from ....where sorder<=a的整数部分 and sorder>b的整数部分"
小弟是存储过程的初学者,对于这个过程不知道怎么写,请各位高手指点一下,感激不尽

解决方案 »

  1.   

    第一条记录中字段"sorder"的值,这里先叫做a,另一个是记录集中最后一条记录中字段"sorder"的值,
    -------這第一條,最後一條是最小,最大值的概念麼
      

  2.   

    可以把exec (@strSQL) 得到的记录集写到临时表中去
    insert #T exec (@strSQL)然后在对临时表进行操作
    "select * from #T where sorder<=a的整数部分 and sorder>b的整数部分"
      

  3.   

    恩对,排序就是按照sorder desc排序的,
    scmail81(琳·风の狼(修罗))这位大哥,小弟是初学者,就是不知道具体怎么写,能不能大概写一下,以便我举一反三的学习,还有好像可以用“表变量”吗?看到有些资料说表变量比“临时表”速度快
      

  4.   

    --这样?
    declare @a int,@b int
    select top 1 @a=sorder from table1 order by 排序字段 
    select top 1 @b=sorder from table1 order by 排序字段 desc
    select * from table1 where sorder<=@a and sorder>@b
      

  5.   

    declare @strSQL varchar(5000) -- 主语句
        set @strSQL ='select * from t where sorder<=floor((select max(sorder) from t)) and sorder>floor((select min(sorder) from t))'
        exec (@strSQL)
      

  6.   

    declare @re table(这里申明有哪些字段)
    insert into @re select 
      

  7.   

    splory(爽儿) 这位朋友,
    declare @re table(这里申明有哪些字段)
    insert into @re select 
    最后那个 select语句,我用的是@strsql
    可以这样写吗?
    declare @re table(这里申明有哪些字段)
    insert into @re exec(@strsql)
      

  8.   

    你可以在set @strSQL =select 这里就把a,b选出来,这样方便
      

  9.   


    表变量不行
    临时表的话
    insert into #T exec(@strsql)
    必需指定全部列
    可以这样子:
    create table #T(name varchar(200))
    insert #T(name) 
    select name from openrowset('sqloledb','trusted_connection=yes','select * from sysobjects')
      

  10.   

    to:
    declare @re table(这里申明有哪些字段)
    insert into @re exec(@strsql)不行。表变量不能这样操作,如果你改临时表的话,也有问题,
    table(这里申明有哪些字段)----必须是exec(@strsql)的全部字段,可以象上一楼的例子那样
      

  11.   

    回复人:xyxfly(小虾米......BS问题解决不结贴) ( 五级(中级)) 信誉:100  2006-09-02 10:26:00  得分:0

    你可以在set @strSQL =select 这里就把a,b选出来,这样方便
    这个怎么写啊?如果在这里能选出a,b就不用建临时表了,,
    这里的@strsql是一个挺复杂的语句
    set @strSQL = "select top " + str(@PageSize) +" "+@strGetFields+ " from ["
    + @tblName + "] where [" + @fldName + "]" + @strTmp + "(["
    + @fldName + "]) from (select top " + str((@PageIndex-1)*@PageSize) + " ["
    + @fldName + "] from [" + @tblName + "] where " + @strWhere + " "
    + @strOrder + ") as tblTmp) and " + @strWhere + " " + @strOrder
      

  12.   

    hoho  分页存储过程?不好写 -_-