--查询:declare @s varchar(8000)
set @s=''
select @s=@s+',['+b.fTitle+']=['+b.fName+']'
from b join syscolumns a 
on a.name=b.fname and id=object_id('a')
group by b.fName,b.fTitle
order by min(colid)set @s=stuff(@s,1,1,'')
exec('select '+@s+' from a')

解决方案 »

  1.   

    多谢 zjcxc(邹建) 帮忙!能推荐基本SQL的书吗?
    我想好好恶补一下!
      

  2.   

    SQLServer2000开发者指南
    http://www.pdown.net/download.asp?downid=2&id=1035sqlserver 2000 程序员指南
    http://www.pdown.net/download.asp?downid=2&id=143http://www.pdown.net/ 这个网站有几本书还算过得去吧.个人观点先看一些书,掌握基础
    再找问题来练(本站就大把问题,还有大把解决方法)然后再看深层次的书,再练不明白的也多看联机帮助
      

  3.   

    To zjcxc:
    如果我想在以上搜索中加入具体的条件该怎么做啊?
    比如:age>20的记录就显示"姓名"和"地址"
      

  4.   

    by the way, www.pdown.net 上不去啊!
      

  5.   

    --加条件set @s=stuff(@s,1,1,'')
    exec('select '+@s+' from a where 条件')
      

  6.   

    --age>20的记录就显示"姓名"和"地址"不太明白这句话,一个记录集,所有的记录的字段都是一样的,不可能部分记录用这个字段,部分记录不用.
      

  7.   

    http://www.pdown.net/ 今天确实不行,你去其他网站搜索一下
      

  8.   

    --age>20的记录就显示"姓名"和"地址"我的意思是,相当于“SELECT NAME,ADDRESS FROM A WHERE AGE>20”
      

  9.   

    --那就是这样改查询语句(下午出去了)declare @s varchar(8000)
    set @s=''
    select @s=@s+',['+b.fTitle+']=['+b.fName+']'
    from b join syscolumns a 
    on a.name=b.fname and id=object_id('a')
    where b.fName in('NAME','ADDRESS')
    group by b.fName,b.fTitle
    order by min(colid)set @s=stuff(@s,1,1,'')
    exec('select '+@s+' from a WHERE AGE>20')
      

  10.   

    http://www.pdown.net/ 
    打不开
      

  11.   

    如果你用.net开发的话,查询时可以只写,“SELECT NAME,ADDRESS FROM A WHERE AGE>20”,在显示时可以编辑,让name显示成"姓名",不过zjcxc的方法更好,我的方法比较简单,但不灵活,如果数据库变了,只能修改程序