DECLARE @n int,@s varchar(8000)
set Rowcount 16
set @n = 16
SELECT @n=@n-1,@s=CASE WHEN @n<15 THEN @s+N','+QUOTENAME(RTRIM(CAST(id as varchar(8000))),N'''') ELSE N'' END FROM yisheng order by xingming desc
--select @s
SET @s=STUFF(@s,1,1,N'')
--select len(@s)
exec(N'select id,xingming from yisheng where id in('+@s+N') order by xingming desc')为什么这个语句取不到第一条记录
set Rowcount 0
select id,xingming from yisheng order by xingming desc
set Rowcount 16
set @n = 16
SELECT @n=@n-1,@s=CASE WHEN @n<15 THEN @s+N','+QUOTENAME(RTRIM(CAST(id as varchar(8000))),N'''') ELSE N'' END FROM yisheng order by xingming desc
--select @s
SET @s=STUFF(@s,1,1,N'')
--select len(@s)
exec(N'select id,xingming from yisheng where id in('+@s+N') order by xingming desc')为什么这个语句取不到第一条记录
set Rowcount 0
select id,xingming from yisheng order by xingming desc
set Rowcount 16
set @s=''
set @n = 16
SELECT @n=@n-1,@s=CASE WHEN @n<15 THEN @s+N','+QUOTENAME(RTRIM(CAST(id as varchar(8000))),N'''') ELSE N'' END FROM yisheng order by xingming desc
--select @s
SET @s=STUFF(@s,1,1,N'')
--select len(@s)
exec(N'select id,xingming from yisheng where id in('+@s+N') order by xingming desc')为什么这个语句取不到第一条记录
set Rowcount 0
select id,xingming from yisheng order by xingming desc
set Rowcount 16
set @n = 16
SELECT @n=@n-1,@s=CASE WHEN @n<15 THEN @s+N','+QUOTENAME(RTRIM(CAST(id as varchar(8000))),N'''') ELSE N'' END FROM yisheng order by xingming desc
--select @s
SET @s=STUFF(@s,1,1,N'')
--select len(@s)
print'select id,xingming from yisheng where id in('+@s+N') order by xingmingdesc'
--print 一下语句内容,看看
set Rowcount 0
select id,xingming from yisheng order by xingming desc
set @s=''
DECLARE @n int,@s varchar(8000)
set Rowcount 16
set @n = 16
SELECT @n=@n-1,@s=CASE WHEN @n<15 THEN @s+N','+QUOTENAME(RTRIM(CAST(id as varchar(8000))),N'''') ELSE N'' END FROM yisheng order by xingming desc
select @s@s得到的id少了第一个,请高手解答
set Rowcount 16
set @n = 16
SELECT @n=@n-1,@s=CASE WHEN @n<15 THEN @s+N','+QUOTENAME(RTRIM(CAST(id as varchar(8000))),N'''') ELSE N'' END FROM yisheng order by xingming desc
--select @s
SET @s=STUFF(@s,1,1,N'')
--select len(@s)
exec(N'select id,xingming from yisheng where id in('+@s+N') order by xingming desc')--这地方是忘加注释了 为什么这个语句取不到第一条记录
set Rowcount 0
select id,xingming from yisheng order by xingming desc
select @s有结果?
好像是这里第一个@n=15 然后这一行的结果@s='',然后第一个id就没有
DECLARE @n int,@s varchar(8000)
set Rowcount 15
set @n = 14
set @s=''
SELECT @s=CASE WHEN @n<15 THEN @s+N','+QUOTENAME(RTRIM(CAST(id as varchar(8000))),N'''') ELSE N'' END,@n=@n-1 FROM yisheng order by xingming desc
--select @s
SET @s=STUFF(@s,1,1,N'')
--select len(@s)
exec (N'select id,xingming from yisheng where id in('+@s+N') order by xingming desc')
select id,xingming from yisheng order by xingming desc这样就能调出来