declare @a varchar(8000)
set @a=''
select @a=@a+','+name from (select top 100 percent name from syscolumns where id=object_id('表') order by case colorder when 20 then 00 when 27 then 01 else colorder end ) a
set @a='select '+stuff(@a,1,1,'')+' from 表'
exec(@a)
set @a=''
select @a=@a+','+name from (select top 100 percent name from syscolumns where id=object_id('表') order by case colorder when 20 then 00 when 27 then 01 else colorder end ) a
set @a='select '+stuff(@a,1,1,'')+' from 表'
exec(@a)
---这条语句怎么会产生,COL1,CLOOL2,COL3,...的效果的呢能否说明下
“回复人: xueguang(xg) ”的 答案 实在是 太爽了,经典啊,很有欣赏价值!
---这条语句怎么会产生,COL1,CLOOL2,COL3,...的效果的呢能否说明下这句相当于一个循环赋值的语句,每查出一行,@a就会增加一个值,加top 100 percent是因为有order by的子查询必须要指定top,case后面的语句就是为了决定列的顺序用的.