我写了一个动态向CXGRID中增加字段列的小东西,现在出了一个问题,当查询一个表时没有什么问题,当查询两个表时,如果这两个表中有相同字段时,最后导致这两列在CXGRID中显示的值是完全相同的。
所以我想知道,怎么样能用最简单的方法得出以下结果:有表T
其中字段 a,b,c怎么用SELECT 语句 查询后其结果显示为字段名称    T.a    T.b    T.c
------------------------------------
             1     张三    女
             2     李四    女
             3     王五    男

解决方案 »

  1.   


    declare @sql varchar(1000)
    select @sql=isnull(','+@sql,'')+name+' as T.'+name from syscolumns where  id=object_id('T')
    set @sql='select '+@sql+'from T'
    exec(@sql)
      

  2.   

    [SQL Server]第 1 行: ',' 附近有语法错误。
      

  3.   


    declare @sql varchar(max)
    SET @sql=''
    select @sql=@sql+CASE WHEN @sql='' THEN '' ELSE ',' end+name+' as [tb.'+name+']' from syscolumns where  id=object_id('tb')
    set @sql='select '+@sql+' from tb'
    exec(@sql)
      

  4.   

    补充一下,我自己有一个表维护的是我自建表及字段相关信息,在这个表中有时是单一的表和字段,有时是两个或多个表及其字段。当sys_dd_table left join sys_dd_field 时,怎么让字段名称显示为[表名.字段名]
      

  5.   

    1. 不知道楼主这样做有什么意义?字段名相同,意义不一样相同,比大多数表都有ID字段,但它们意义不一样,如果作为别的表的外键,它的名字也不能取名为ID。
    2. 楼主可能是查询时,如果字段名一样,就要加表名在前(T.ID),做关联查询时,只要字段名不一样,都可以不带表名,如果字段名一样,一定要带表名.
    3. 在程序中最好都能够带出字段所属的表名,以免哪天程序加一个字段与关联查询字段名一样而导致错误
      

  6.   

    是这样的,我是要通过做的这个表,动态生成CXGRID的各列,一个表时没啥问题,就是两个表时,如果有字段相同,这两列显示的值 就都是一样的,所以我把每个column的fieldname批量设为相应的【表.字段】,但是如果查询时查询的字段列名不是按【表.字段】显示的,CXGRID里虽然能看到动态生成的字段,但都是空的。之前试过.