请教SQL查询某几列除外的所有列SELECT * FROM 表名使用上面的语句,可以把这个表的所有列都查询出来了。
但是,我不想查出所有的 列,我只想,显示出自己想要的列。
   但是,如果使用SELECT a,b,c,d,e,f,g FROM 表名
这样的查询方法,又太累,一个一个写。
有方法,使用排除方法吗?
比如,排除这个表的 ID DateTime  然后,其余的列,全部查询显示出来
请教各位了。

解决方案 »

  1.   

    可以用动态sql集合系统表,不过更累。
      

  2.   

    通过sys.columnr表来获得除指定字段之外的字段的名字,再动态的把这些字段拼接起来,没环境,写不了
      

  3.   

    declare @a varchar(max)
    set @a=''
    select @a=@a+name+',' from sys.columns where id=object_id('tablename') and name not in (需要排除的字段名字)set @a='select '+left(@a,len(@a)-1)+' from tablename'exec(@a)
      

  4.   

    得到表中除Col1、Col2的所有列例如:userno_fm、userno_to
    create table test(
           num int identity(1,1),
           userno_fm varchar(10),
           userno_to varchar(10),
           username varchar(10))
    select * from testdeclare @sql varchar(8000)
        select @sql=''
        select @sql=@sql+','+[name] from 
        (select [name] from syscolumns where object_id(N'[test]')=[id] and [name] not in ('userno_fm','userno_to')) A    set @sql='select '+stuff(@sql,1,1,'')+' from [test]'
        --print @sql
        exec (@sql)drop table test
    select * from syscolumns where id=object_id('tableName') and name not in('a','b')
      

  5.   

    如果和  GROUP BY  一起使用怎么写呢?如果和 INNER JOIN ON 一起使用又怎么写呢?