--少了点东西:
declare @sql varchar(100)
select @sql=''
select @sql=@sql+','+name from
(
select top 10 a.name from syscolumns a where id=object_id('xxx') and
a.name not in(
select top 10 name from syscolumns where id=object_id('xxx') order by len(name),name
)
order by len(name),name
) tem
select @sql=right(@sql,len(@sql)-1)
select @sql='select '+@sql+' from xxx'
select @sql
exec (@sql)
To wzh1215(四脚蛇):按照这句修改的话
select top 10 a.name from syscolumns a where id=object_id('xxx') and a.name not in(select top 10 name from syscolumns order by len(name),name) order by len(name),name
select top 10 a.name from syscolumns a where id=object_id('xxx') order by len(name),name
只要把这面这句改一下就行了:
select top 10 a.name from syscolumns a where id=object_id('xxx') and a.name not in(select top 10 name from syscolumns order by len(name),name) order by len(name),name
------------------
最好还是没这样用,不就十个字段嘛。字段多时再考虑用下面的!
declare @sql varchar(100)
select @sql=''
select @sql=@sql+','+name from
syscolumns a where id=object_id('xxx') and name not in(col1,col2,...这里为你不要的字段列表) tem
select @sql=right(@sql,len(@sql)-1)
select @sql='select '+@sql+' from xxx'
select @sql
exec (@sql)
--再改一改,这样选出来的恐怕很难符合你的要求!
declare @sql varchar(100)
select @sql=''
select @sql=@sql+','+name from
(
select top 10 a.name from syscolumns a where id=object_id('xxx') order by len(name),name
) tem
select @sql=right(@sql,len(@sql)-1)
select @sql='select '+@sql+' from xxx'
select @sql
exec (@sql)
--方法是有,不过还不如不用:
declare @sql varchar(100)
select @sql=''
select @sql=@sql+','+name from (
select top 10 a.name from syscolumns a,sysobjects b where a.id=b.id and b.name='你的表'
) tem
select @sql=right(@sql,len(@sql)-1)
select @sql
exec ('select '+@sql+' from 你的表')