首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么用SQL语名使查询结果的字段名称显示为Table.Field

2013-09-09 
如何用SQL语名使查询结果的字段名称显示为Table.Field我写了一个动态向CXGRID中增加字段列的小东西,现在出

如何用SQL语名使查询结果的字段名称显示为Table.Field
我写了一个动态向CXGRID中增加字段列的小东西,现在出了一个问题,当查询一个表时没有什么问题,当查询两个表时,如果这两个表中有相同字段时,最后导致这两列在CXGRID中显示的值是完全相同的。
所以我想知道,怎么样能用最简单的方法得出以下结果:

有表T
其中字段 a,b,c

怎么用SELECT 语句 查询后其结果显示为

字段名称    T.a    T.b    T.c
------------------------------------
             1     张三    女
             2     李四    女
             3     王五    男



[解决办法]


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)

[解决办法]

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)

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

热点排行