SQL Server中查询结果拼接遇到的小问题

前天的项目,刚接手,对于模块还不是很熟悉,其中有一个模块,涉及到4个表,其中主要的表就有两个,只要把这个弄清楚了就一切回归于“太平”了。

模块要求:把两个表的内容查询出来,结果连接在一起。大师说完,感觉没有什么问题,自己就看了下数据库表的设计,看完后,发现两张表中的主键完全可以相同啊!

项目不仅设计到读出来,还要根据主键把对应的所有数据都读出,这一下让我感觉很头疼,。想想以前老师曾说过,在万不得已的时候不要用UNION或者UNION ALL,这会大大降低性能的。

于是就和大师商量能不能换一种简单的,分开做,人家大师说了,分开也可以,就是相同的业务分成两类来做,一不好,二不美观。

就这样呗,回家想方法呗,查询简单,就是如何在主键相同的情况下区分数据来自那张表的问题。

本想加一个互斥的列来,试了一下没成功,。最后还是加了一个标志用来区分不同表。

代码如下:

SELECT a.biAutoID, a.vCompanyName ,'Table_1' AS Differ FROM CapitalProjectKeyTechnology  as a

UNION ALL

SELECT b.biAutoID, b.vCompanyName ,'Table_2' AS Expr1 FROM  CapitalProjectTest as b
原文地址:https://www.cnblogs.com/haoke/p/3946543.html