如何列出一个数据表的所有字段的内容(包括字段名和字段对应的内容记录)但条件是:如果这个字段的内容,全部为空或者="无"的话,就不显示这个字段名及对应的字段内容比如:有如下字段和对应的内容
  
A  B  C  D 
1  1  1  无
2  3  5  无用循环输出时,想得到的结果是:A  B  C   
1  1  1  
2  3  5  就是字段名不知如何循环输出,并且,如果字段内容全部为空或=“无”时,就不显示这个字段不会做
请各位帮我一把,谢谢!

解决方案 »

  1.   

    引用邹健大侠的:
    SELECT 
    表名=case when a.colorder=1 then d.name else '' end, 
    字段序号=a.colorder, 
    字段名=a.name, 
    标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end, 
    主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( 
    SELECT name FROM sysindexes WHERE indid in( 
    SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid 
    ))) then '√' else '' end, 
    类型=b.name, 
    占用字节数=a.length, 
    长度=COLUMNPROPERTY(a.id,a.name,'PRECISION'), 
    小数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0), 
    允许空=case when a.isnullable=1 then '√'else '' end, 
    默认值=isnull(e.text,''), 
    字段说明=isnull(g.[value],'') 
    FROM syscolumns a 
    left join systypes b on a.xtype=b.xusertype 
    inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties' 
    left join syscomments e on a.cdefault=e.id 
    left join sysproperties g on a.id=g.id and a.colid=g.smallid 
    where d.name='bas_unit'   --表名
    order by a.id,a.colorder
      

  2.   

    --求某一个表的字段名方法:
    declare @name varchar(200)
    set @name=''
    select @name=@name+','+name from syscolumns where id=Object_id('表名')
    select stuff(@name,1,1,'')
      

  3.   

    能解释一下吗,我是用asp做的。