2013-07-24 91 views
0

我有3个表:Tbl1,Tbl2Tbl3从两个表中插入数据可能有匹配的列

Tbl3具有这样的结构,使得Tbl3中的大多数列出现在Tbl2 + Tbl1中。

我不知道哪列匹配,哪些不匹配。

我想从Tbl1Tbl2Tbl3插入数据。

有没有办法确定与Tbl3匹配的列名,然后从Tbl1和Tbl2插入数据?

表的可能的结构是这样的:

TBL1 ---> column1的| Column2 | Column3 | .... Column78

Tbl2 ---> Column79 | Column80 | Column81 | .... Column 100

Tbl3 ---> Column1 | Column2 | Column3 | .... Column100 | Column101 | Column102 ... Column 120

回答

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'; 

有了这些信息,您就可以构建您想要的查询。

相关问题