如何用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)