日期:2014-05-17  浏览次数:20911 次

select * 除某列之外
table1有a1,a2,a3……a50共50个列

如何查询除a25之外的所有列??

------解决方案--------------------

declare @sql varchar(4000)
select @sql=isnull(@sql,'')+','+name from sys.columns 
where object_id in (select object_id from sys.tables where name ='table1') and name !='a25'
set @sql=STUFF(@sql,1,1,'')
exec ('select ' + @sql+' from table1')


这样试试
------解决方案--------------------
如果需要一直读取这样的一个表格,那么建立一个view好了。

至于需要排除的列,你可以表格右键,选取1000行,让数据库自动生成脚本,你把不需要的列剔出就行。我都是这么干的,:)
------解决方案--------------------
使用動態語句。
Declare @sql nvarchar(max)

Select @sql=isnull(@sql+',','')+quotename(name) From sys.syscolumns
Where id=object_id('table1')
   And name Not in('a25')

Exec ('Select '+@sql+' From table1')