[英]Concatenate tables (UNION ALL) where one of the tables lacks one of the columns
[英]Union three tables where not all columns exist
我認為這將是一個相當直接的過程,但我在將三個表聯合/合並在一起時遇到了問題。 每個prvs_
和cur_
前綴大約有 20 個左右的屬性,但我選擇只為問題添加一些屬性。
表 1, #no_change_or_transfer
看起來像這樣,大約有 100 萬行:
prvs_loan_num | prvs_wac | prvs_tni | cur_loan_num | cur_wac | cur_tni
---------------|-----------|-----------|---------------|----------|---------
86 | 2.3 | 2000 | 86 | 2.5 | 2000
表 2, #left_in_aug
看起來像這樣,大約有 20,000 行:
prvs_loan_num | prvs_wac | prvs_tni
---------------|-----------|-----------
10 | 3.1 | 1500
表 3, #joined_in_sept
看起來像這樣,大約有 20,000 行:
cur_loan_num | cur_wac | cur_tni
---------------|-----------|-----------
22 | 3.5 | 1700
我想要的是桌子看起來像這樣:
prvs_loan_num | prvs_wac | prvs_tni | cur_loan_num | cur_wac | cur_tni
---------------|-----------|-----------|---------------|----------|---------
86 | 2.3 | 2000 | 86 | 2.5 | 2000
10 | 3.1 | 1500 | NULL | NULL | NULL
NULL | NULL | NULL | 22 | 3.5 | 1700
我嘗試過這樣的full outer join
但收到錯誤消息,指出每個表中的列名必須是唯一的:
SELECT *
INTO #month_over_month
FROM #no_change_or_transfer a
FULL OUTER JOIN #left_in_aug b
ON a.prvs_loan_number = b.prvs_loan_number
FULL OUTER JOIN #joined_in_sept c
ON a.cur_loan_number = c.cur_loan_number
我也試過這個並收到一個錯誤,說所有使用 UNION 的查詢在它們的目標列表中必須有相同數量的表達式:
SELECT x.*
INTO #month_over_month
FROM (SELECT * FROM #no_change_or_transfer
UNION
SELECT * FROM #left_in_aug
UNION
SELECT * FROM #joined_in_sept) x
聯合中的所有列在每個查詢中都必須匹配。
明確指定列名並在必要時提供null
。
請注意,列名僅由第一個查詢確定。
select prvs_loan_num, prvs_wac, prvs_tni, cur_loan_num, cur_wac, cur_tni
from #no_change_or_transfer
union all
select prvs_loan_num, prvs_wac, prvs_tni, null, null, null
from #left_in_aug
union all
select null, null, null, cur_loan_num, cur_wac, cur_tni
from #joined_in_sept
您可以使用UNION ALL
聯合表。 例如:
select prvs_loan_num, prvs_wac, prvs_tni, cur_loan_num, cur_wac, cur_tni
from #no_change_or_transfer
union all
select prvs_loan_num, prvs_wac, prvs_tni, null, null, null
from #left_in_aug
union all
select null, null, null, cur_loan_num, cur_wac, cur_tni
from #joined_in_sept
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.