[MSSQL] 找出2个table的相同栏位,把资料union起来

把2个table的资料union起来,但2个table很相似,却有些栏位差异.
怎麽快速的找出共同栏位(来做union)呢?

环璄:SQL SERVER 2008

先建立2个table,有共同栏位,也各有一个不同的栏位:UDT/UTS

CREATE TABLE CUST1
(
	ID INT
	,DT INT
	,UPD INT--这个不同.
)
CREATE TABLE CUST2
(
	ID INT
	,DT INT
	,UTS INT--这个不同.
)

取出栏位,等等做比较

SELECT distinct    TABLE_NAME,COLUMN_NAME INTO #A
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME ='CUST1' AND TABLE_CATALOG='dbname'

SELECT distinct     	 TABLE_NAME,COLUMN_NAME INTO #B
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME ='CUST2' AND TABLE_CATALOG='dbname'

比较异同,可以清楚看出,哪些栏位A有,B没有.

SELECT * FROM #A A FULL OUTER   JOIN #B B ON A.COLUMN_NAME = B.COLUMN_NAME  

取出相同的,来select 做union
这样union,不用怕栏位数不同,也不用怕栏位不一样.

DECLARE @RET VARCHAR(MAX)=''
SELECT @RET = A.COLUMN_NAME+','+@RET  FROM #A A INNER JOIN  #B B ON A.COLUMN_NAME = B.COLUMN_NAME  
SELECT @RET 

--result--
ID,DT,
SELECT ID,DT FROM CUST1
UNION 
SELECT ID,DT FROM CUST2

<<:  Day24 测试写起乃 - Guard

>>:  【Day 12】Array 阵列

[Day 7] -『 GO语言学习笔记』- 指标函式设计 & 常数(constants)

以下笔记摘录自『 The Go Workshop 』。 采用指标的函式设计 如果变数是指标,或者传递...

【Day13】运算子(Operator)

运算子主要是利用符号或单词,来运算前後的值并回传结果 范例: 我们到 Chrome 浏览器的 Con...

Day 28 权限宝石:IAM Role 建立与使用

今天我们要来介绍 IAM Role 的实作示范,那我们开始吧! 首先使用 Admin 登入,进入 ...

[Day 20] 资料标注 (1/2) — Forget about the price tag ♫

The only thing that never changes is that everyth...

从 IT 技术面细说 Search Console 的 27 组数字 KPI (2) 流量 (1)

Search Console 中数百数千个数字中,若只拿一个数字给老版看的话,该看那一个,答案很简单...