过程是这样的:
首先declare @strSQL varchar(5000) -- 主语句
set @strSQL =select
exec (@strSQL)
这样取得了一个记录集,然后我想要在这个记录集中取两个值,分别是这个记录集中
第一条记录中字段"sorder"的值,这里先叫做a,另一个是记录集中最后一条记录中字段"sorder"的值,
这里先叫做b
这个字段是float型的。
取到值后,分别对a和b取得他们的整数部分,
最后"select * from ....where sorder<=a的整数部分 and sorder>b的整数部分"
小弟是存储过程的初学者,对于这个过程不知道怎么写,请各位高手指点一下,感激不尽
首先declare @strSQL varchar(5000) -- 主语句
set @strSQL =select
exec (@strSQL)
这样取得了一个记录集,然后我想要在这个记录集中取两个值,分别是这个记录集中
第一条记录中字段"sorder"的值,这里先叫做a,另一个是记录集中最后一条记录中字段"sorder"的值,
这里先叫做b
这个字段是float型的。
取到值后,分别对a和b取得他们的整数部分,
最后"select * from ....where sorder<=a的整数部分 and sorder>b的整数部分"
小弟是存储过程的初学者,对于这个过程不知道怎么写,请各位高手指点一下,感激不尽
-------這第一條,最後一條是最小,最大值的概念麼
insert #T exec (@strSQL)然后在对临时表进行操作
"select * from #T where sorder<=a的整数部分 and sorder>b的整数部分"
scmail81(琳·风の狼(修罗))这位大哥,小弟是初学者,就是不知道具体怎么写,能不能大概写一下,以便我举一反三的学习,还有好像可以用“表变量”吗?看到有些资料说表变量比“临时表”速度快
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
set @strSQL ='select * from t where sorder<=floor((select max(sorder) from t)) and sorder>floor((select min(sorder) from t))'
exec (@strSQL)
insert into @re select
declare @re table(这里申明有哪些字段)
insert into @re select
最后那个 select语句,我用的是@strsql
可以这样写吗?
declare @re table(这里申明有哪些字段)
insert into @re exec(@strsql)
表变量不行
临时表的话
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')
declare @re table(这里申明有哪些字段)
insert into @re exec(@strsql)不行。表变量不能这样操作,如果你改临时表的话,也有问题,
table(这里申明有哪些字段)----必须是exec(@strsql)的全部字段,可以象上一楼的例子那样
?
你可以在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