分类：电脑/网络-软件
问题：SQL语句使用unionall后如何知道返回的每一条记录属于哪一? 
两个表的字段名完全相同，无关联select * f(select * from [表1]union all select * from [表2] )as a order by a.id这样合并查询后在返回的记录集中，如何得知某一条记录是属于原先的哪一张表，是表1 还是 表2
回答：这个问题不难解决，请参考如下代码(SYBASE)：

select * from (select '1' a,* from [表1] union all select '2',* from [表2] )as a order by a.id 

在select表1和表2时，分别加上两个伪列，用来区分来自不同的表。
在例中，可以用'1'表示数据来自表1 ,用'2'表示数据来自表2，并且第1个伪列需要定义别名。