[英]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
。 有各種不同的連接(的left
, right
, outter
..),但我想你想的outter之一。
編輯:條件為TableAQ1.calumnName = TableAQ2.columnName
,其中columnName是以某種方式與表中的信息相關的列。 抱歉,我用英語不能很好地解釋自己。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.