【问题标题】:Inserting data from two tables which may have matching columns从可能具有匹配列的两个表中插入数据
【发布时间】:2013-07-23 19:01:33
【问题描述】:

我有 3 个表:Tbl1Tbl2Tbl3

Tbl3 的结构使得 Tbl3 中的大多数列都存在于Tbl2 + Tbl1 中。

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

我想将来自Tbl1Tbl2 的数据插入到Tbl3

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

可能的表结构如下:

Tbl1 ---> Column1 |第 2 列 | Column3 |.... Column78

Tbl2 ---> Column79 |专栏80 |第 81 列 |.... 第 100 列

Tbl3 ---> Column1 |第 2 列 |第 3 列 |.... 第 100 列 |专栏101 | 第 102 列...第 120 列

【问题讨论】:

    标签: sql sql-server sql-server-2008 tsql


    【解决方案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';
    

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

    【讨论】:

      猜你喜欢
      • 2021-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-31
      相关资源
      最近更新 更多