当前位置: 代码迷 >> Sql Server >> 变量不给经过,求大师解答
  详细解决方案

变量不给经过,求大师解答

热度:92   发布时间:2016-04-24 08:56:10.0
变量不给通过,求大师解答
declare @zongshu int
declare @jici int
select @zongshu = COUNT(*) from newold 
select @zongshu 

while(@jici <= @zongshu)
begin
if @jici =  1
select top 1 * from newold
else
select top 1 * from newold where id not in (select top @jici id from newold)
end


为啥这里的@jici不给通过呢

------解决思路----------------------
SQL2008就可以了,加个括号
declare @I int=5
select top (@I) * from Apo_city 

------解决思路----------------------
给@jici变量加上括号

CREATE  TABLE newold(id int)

declare @zongshu int
declare @jici int
select @zongshu = COUNT(*) from newold 
select @zongshu 

while(@jici <= @zongshu)
begin
if @jici =  1
select top 1 * from newold
else
select top 1 * from newold where id not in (select top(@jici) id from newold)
end

------解决思路----------------------
这个逻辑好像有点问题,这样不会陷入死循环吗?
应该给@jici+1
set  @jici=@jici+1
这样才不会陷入死循环
------解决思路----------------------
declare @jici int=0 --给个默认值就好了
  相关解决方案