2013-07-24 37 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'; 

有了這些信息,您就可以構建您想要的查詢。

相關問題