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 --给个默认值就好了