簡體   English   中英

我們可以合並具有不同列數的兩個表,以便查詢通過計算額外的列來添加空列嗎?

[英]Can we union two tables with different number of columns such that the query adds the null columns itself by counting the extra columns?

我有一些表格,其中數據是一年中不同時間段的數據。 盡管相似,但這些表每個季度的列數不同。 我知道是否要合並具有不同列數的兩個表,解決方案是將額外的列數添加為空列。

但是,在這種情況下,我有22個以上的表,每個表有4個版本需要合並。 例如,TableA_Q1聯合TableA_Q2聯合TableA_Q3聯合TableA_Q4,然后對TableB_Q1聯合TableB_Q2重復相同的過程,依此類推。

現在,我為每個Table進行了四個季度的相交,然后開始使用excel來識別剩余的列,但是必須有一種更簡單的方法來做到這一點。 有任何想法嗎?

您可以使用sys.columns和sys.tables來構建動態sql,並根據需要添加null。

您可以追加選擇,只需要在沒有相應列的情況下添加null

數據類型也必須對應,例如:

    select col1, col2, col3, col4
    from TableA_Q1 
    UNION 
    select  col1, col2, null,null 
    from TableA_Q2 
    select  col1, col2, col5,null 
    from TableA_Q3 
    union 
    select  col1,null, col5,null
    from TableA_Q4

如果要刪除重復的行,則可以使用並集。否則,可以使用UNION ALL來選擇所有行

您可以使用join來做到這一點。 諸如select * from TableAQ1 join TableAQ2 on condition 有各種不同的連接(的leftrightoutter ..),但我想你想的outter之一。

編輯:條件為TableAQ1.calumnName = TableAQ2.columnName ,其中columnName是以某種方式與表中的信息相關的列。 抱歉,我用英語不能很好地解釋自己。

https://www.w3schools.com/sql/sql_join_full.asp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM