我有3个表:Tbl1
,Tbl2
和Tbl3
。
Tbl3具有这样的结构:Tbl3中的大多数列存在于Tbl2 + Tbl1
中。
我不知道哪些列匹配,哪些列不匹配。
我想将Tbl1
和Tbl2
的数据插入Tbl3
。
有没有办法确定与Tbl3匹配的列名,然后从Tbl1和Tbl2插入数据?
表的可能结构如下:
Tbl1 ---> Column1 | Column2 | Column3 | .... Column78
Tbl2 --->第79列|第80列|第81栏...... ....第100栏
Tbl3 ---> Column1 | Column2 | Column3 | .... Column100 | Column101 | 第102列......第120栏
答案 0 :(得分:1)
您可以从INFORMATION_SCHEMA.columns
获取列名称。然后,您必须自己手动创建查询:
select tbl3.table_name,
(case when ct1.TABLE_NAME is not null then 'Y' else 'N' end) as InTbl1,
(case when ct2.TABLE_NAME is not null then 'Y' else 'N' end) as InTbl2
from INFORMATION_SCHEMA.columns ct3 left outer join
INFORMATION_SCHEMA.columns ct1
on ct1.COLUMN_NAME = ct3.COLUMN_NAME and
ct1.TABLE_NAME = 'tbl1' left outer join
INFORMATION_SCHEMA.columns ct2
on ct2.COLUMN_NAME = ct3.COLUMN_NAME and
ct2.TABLE_NAME = 'tbl2' left outer join
where ct3.TABLE_NAME = 'tbl3';
使用此信息,您可以构建所需的查询。