SQL查詢一個表中除了某個字段以外的所有字段


T-SQL 不提供這個功能!

變通的辦法有:

  1. 取得該表的建表語句,然后刪除不需要的字段;
  2. 把除這個表中的其他需要的字段一個一個寫出來;
  3. 把這個字段刪除:alter table 表名 drop column 字段名;
  4. 如果是MySql,create table a like b會創建索引;
  5. 新建一個同樣的表b,然后刪除不要的字段:
    create table b as select * from a;
    alter table b drop column c;
    select * from b;
  6. 利用concat函數拼出除了某字段之外的所有字段:
    select
    concat('select',group_concat(column_name),'from',table_name,';')
    from information_schema.columns
    where table_name='xxxx'
    and table_schema='ccms_xxx' and column_name!='id'
  7. 動態拼接sql,把不想查的列去掉后動態執行sql:
    declare @name varchar(100)
    declare @sql varchar(1000)
    
    SET @sql='select '
    DECLARE C11 CURSOR FOR
    
    select name from syscolumns where id=
    (select max(id) from sysobjects where xtype='u' and name='表名')
    and name <> '不要的字段'
    OPEN C11
    
    FETCH NEXT FROM C11 INTO 
                @name
    IF @@FETCH_STATUS <> 0 
    BEGIN
         DEALLOCATE C11
         RETURN
    END 
    WHILE(@@FETCH_STATUS = 0)
    BEGIN
         SET @sql=@sql+@name+','
    
         FETCH NEXT FROM C11 INTO 
         @name
    END
    DEALLOCATE C11
    
    set @sql=substring(@sql,1,len(@sql)-1)+' from 表名'
    
    exec (@sql)
    View Code

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM