declare @str varchar(1000)
set @str ='col1,col2,col3,col4'
--预定义好所有字段的列表,也可以从系统表中得到这个字符串,稍复杂。select @str=replace(','+@str+',',','+col1+',',',') --去掉字段一
select @str=replace(','+@str+',',','+col2+',',',') --去掉字段二
if left(@str,1)=',' then right(@str,len(@str)-1)
if right(@str,1)=',' then left(@str,len(@str)-1)
exec('select '+@str+' from table')
set @str ='col1,col2,col3,col4'
--预定义好所有字段的列表,也可以从系统表中得到这个字符串,稍复杂。select @str=replace(','+@str+',',','+col1+',',',') --去掉字段一
select @str=replace(','+@str+',',','+col2+',',',') --去掉字段二
if left(@str,1)=',' then right(@str,len(@str)-1)
if right(@str,1)=',' then left(@str,len(@str)-1)
exec('select '+@str+' from table')
declare @i int
declare @sql varchar(300)
select @s = count(*) from syscolumns as A left join sysobjects as B
on A.id = B.id
where B.name = 'a1'
set @sql = 'select ""'
if @s > 2
begin
set @i = 3
while exists (select * from syscolumns as A left join sysobjects as B
on A.id = B.id where B.name = 'a1' and A.colorder = @i )
begin
select @sql = @sql + ',' + A.name from syscolumns as A left join sysobjects as B
on A.id = B.id where B.name = 'a1' and A.colorder = @i
set @i = @i +1
end
end
set @sql = @sql + ' from a1'
exec (@sql)