sql 如何选择某列之外的所有列?
如果我的一个数据库中有20个列, 我想要除某个列之外的19个列,如何作?比如不要的这个列为a? 难不成19个列写一遍?不会吧.
[解决办法]
比如下面的语句从表“Test”中取出所有除去“ID”字段的所有字段列表
select a.name
from syscolumns as a
inner join sysobjects as b on a.id = b.id
where b.name = 'test ' and a.name <> 'id '
可以组成一个字符串来表示字段列表:
declare @strList varchar(4000)
set @strList = ' '
select @strList = @strList + a.name + ', '
from syscolumns as a
inner join sysobjects as b on a.id = b.id
where b.name = 'test ' and a.name <> 'id '
set @strList = left(@strList, len(@strList)-1)
select @strList
[解决办法]
select * from syscolumns
where id=object_id( 'tablename ') and name <> 'a '
获取到的就是tablename表中除了a列以外的其他列的集合,然后通过动态语句来完成。
其实自己写也不错。